AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

js数字舍入误差以及解决方法(必看篇)

51自学网 http://www.wanshiok.com
js舍入误差

1、起因:


返回结果是true。

2、原因:计算机的二进制实现和位数限制有些数无法有限表示。就像一些无理数不能有限表示,如 圆周率 3.1415926...,1.3333... 等。JS 遵循 IEEE 754 规范,采用双精度存储(double precision),占用 64 bit。

3、解决方法

(1)toFixed(),存在兼容性(chrome)


(2)比较稳妥方法(数字如果过大,也会有误差):

*JS 中能精准表示的最大整数是 Math.pow(2, 53),十进制即 9007199254740992。  大于 9007199254740992 的可能会丢失精度

function round(num,d){//Step1:将num放大10的d次方倍num*=Math.pow(10,d);//Step2:对num四舍五入取整num = Math.round(num);//Step:返回num缩小10的d次方倍,获得最终结果return num/Math.round(10,d);}console.log(round(123.456)); //123.46

以上这篇js数字舍入误差以及解决方法(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持wanshiok.com。


js舍入误差  
上一篇:js数字计算 误差问题的快速解决方法  下一篇:JS实现浏览器打印、打印预览示例