精通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 冒泡事件阻止实现代码
Jan 27 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
Vue 2.x教程之基础API
Mar 06 Javascript
如何理解Vue的render函数的具体用法
Aug 30 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
Nov 12 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
小程序实现横向滑动日历效果
Oct 21 Javascript
vue基于better-scroll实现左右联动滑动页面
Jun 30 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
php实现页面纯静态的实例代码
2017/06/21 PHP
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
JavaScript创建、读取和删除cookie
2019/09/03 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
javascript实现时钟动画
2020/12/03 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
Python使用爬虫猜密码
2016/02/19 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
静态成员和非静态成员的区别
2012/05/12 面试题
爷爷追悼会答谢词
2014/01/24 职场文书
简历自我评价模版
2014/01/31 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
学校欢迎标语
2014/06/18 职场文书
干部个人考察材料
2014/12/24 职场文书
开除员工通知
2015/04/22 职场文书
西游记读书笔记
2015/06/25 职场文书
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis