精通Javascript系列之数值计算


Posted in Javascript onJune 07, 2011

更直观一点:
---------------------
例:var a=32.6;
var b=67;
var c=9e5;
---------------------
对于数值类型,如果希望转换为科学计数法,可以采用toExponential()方法,该方法接受一个参数,表示要输出小数倍数:
---------------------
例:
var a=78.9;
alert(a.toExponential(1));
---------------------
js 中对数值的格式化问题

对数字进行格式化输出,是非常有意义的一件事情,例如许多时候,我们希望一个数字能够输出为指定格式的字符串,拿26.9878来说,我们可能会希望它能保留两位小数来说出,即结果为26.99,或者对于0.345678,希望能够按百分号输出,并保留小数点后两位,即结果为34.57%,又例如我们希望将数字56456456按照科学计数法来显示,并保留小数点后两位,即结果为5.65e+7,类似例子当然还有很多。

那么在Javascript标准之中,是否提供了对这些格式化输出的支持呢,可以说Javascript也提供了部分支持,但是提供的并部完善,具体你可以看一下Number对象的使用,里面提供了对数字的一些格式化输出,几个函数如下:

toExponential([fractionDigits]) :将数字按科学计数法格式返回,其中的fractionDigits值小数点后保留的位数。 
toFixed([fractionDigits]) :将数字按指定的小数点位数返回,其中的fractionDigits值小数点后保留的位数。 
toPrecision([precision]) :将数字按指定的精度返回(这个精度不是指小数点后几位),其中precision是指定的精度值。

如果你不会使用上面的函数,我简单给你举个例子:
var num=56.45678; 
var rs1=num.toExponential(2);//rs1的值为5.65e+1 
var rs2=num.toFixed(2);//rs的值为56.45 
var rs3=num.toPrecision(2);//rs的值为56

虽然说Number对象提供的这些方法能够解决不少的数字转化问题,但是对于许多情况还是不好满足的,例如对百分号的支持等等。

为了解决这个问题,并提供更为强大和灵活的数字格式化要求,JsJava专门提供了的Javascript自定义类来进行支持,你可以下载jsjava-1.0.js,引用其中的

src/jsjava/text/NumberFormat.js或者直接引用jslib/jsjava-1.0.js,举例如下:

<script src="js/jsjava/text/NumberFormat.js"></script> 
<script src="js/jsjava/lang/StringBuffer.js"></script> 
<script src="js/jsjava/lang/IllegalArgumentException.js"></script> 
<script> 
var nf=new DecimalFormat(); 
nf.applyPattern("000.000%"); 
var res=nf.format(-0.893566); 
document.write(res+"<br>"); 
nf.applyPattern("0000.00"); 
var res=nf.format(-53.385967); 
document.write(res+"<br>"); 
nf.applyPattern("0000.000E00"); 
var res=nf.format(53.385967); 
document.write(res+"<br>"); 
</script>

显示结果为:

-89.357%
-53.39
5338.597e-2

Javascript 相关文章推荐
js 链式延迟执行DOME
Jan 04 Javascript
如何判断鼠标是否在DIV的区域内
Nov 13 Javascript
JavaScript判断浏览器类型的方法
Feb 10 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
Mar 30 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
Jul 19 Javascript
JS中使用media实现响应式布局
Aug 04 Javascript
在HTML文档中嵌入JavaScript的四种方法
May 07 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
图文讲解vue的v-if使用方法
Feb 11 Javascript
通过说明与示例了解js五种设计模式
Jun 17 Javascript
JavaScript enum枚举类型定义及使用方法
May 15 Javascript
解读Vue组件注册方式
May 15 Vue.js
jQuery 源码分析笔记(4) Ready函数
Jun 02 #Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 #Javascript
JqGrid web打印实现代码
May 31 #Javascript
16个最流行的JavaScript框架[推荐]
May 29 #Javascript
js 静态动态成员 and 信息的封装和隐藏
May 29 #Javascript
在JavaScript中监听IME键盘输入事件
May 29 #Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
May 28 #Javascript
You might like
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
node中间层实现文件上传功能
2018/06/11 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
python输出指定月份日历的方法
2015/04/23 Python
python模块之re正则表达式详解
2017/02/03 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
python监控nginx端口和进程状态
2019/09/06 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
怎样写好自荐信和推荐信
2013/12/26 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
大专学生求职自荐信
2014/07/06 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
人民的好儿女观后感
2015/06/18 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
golang中的struct操作
2021/11/11 Golang
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
python中 Flask Web 表单的使用方法
2022/05/20 Python