最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
js数字舍入误差以及解决方法(必看篇)
时间:2017-05-09 编辑:简简单单 来源:一聚教程网
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 的可能会丢失精度 functionround(num,d){
//Step1:将num放大10的d次方倍
num*=Math.pow(10,d);
//Step2:对num四舍五入取整
num = Math.round(num);
//Step:返回num缩小10的d次方倍,获得最终结果
returnnum/Math.round(10,d);
}
console.log(round(123.456));//123.46 |
相关文章
- js数字计算 误差问题的快速解决方法 05-09
- js实现兼容PC端和移动端滑块拖动选择数字效果 04-11
- js控制输入框只能输入一位并且是数字的教程 10-24
- 一句JS限制input只允许输入数字和字母 08-18
- js中parseInt数字,并求和用法详解 09-04
- js判断只能输入数字、字母代码总结 05-07