精通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查找父节点的简单方法
Jun 28 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
JavaScript String 对象常用方法总结
Apr 28 Javascript
详解jquery选择器的原理
Aug 01 jQuery
vue 运用mock数据的示例代码
Nov 07 Javascript
js取小数点后两位四种方法
Jan 18 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
Apr 28 Javascript
JavaScript图片旋转效果实现方法详解
Jun 28 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
Aug 03 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 Javascript
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
德生PL550的电路分析
2021/03/02 无线电
PHP类中Static方法效率测试代码
2010/10/17 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
js实现网页收藏功能
2015/12/17 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
python列表操作使用示例分享
2014/02/21 Python
浅谈Python中数据解析
2015/05/05 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
大学军训通讯稿
2014/01/13 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
医院科室评语
2015/01/04 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL
MySQL学习之基础操作总结
2022/03/19 MySQL
Android Rxjava3 使用场景详解
2022/04/07 Java/Android