当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 有关JS小数运算精度问题的讲解

有关JS小数运算精度问题的讲解

2019年03月29日  | 移动技术网IT编程  | 我要评论

我们可能在平时运算过程中碰到以下类似情况:

0.1 + 0.2 结果是 0.30000000000000004

0.0003 * 10 结果是 0.0029999999999999996

0.003 / 10 结果是 0.00030000000000000003

原因在于:在计算机内部,使用二进制浮点数并不能准确地表示像 0.1, 0.2 或 0.3 这样的数字,所以当编码或解释代码时,像“0.1”其实已经舍入为与0.1最接近的数字,即使在计算发生之前已经会导致小的舍入误差(是的,所有语言都是这样)

如果不想看到这些额外的小数位数:在显示时,我们可以用tofixed()或toprecision() 之类将结果格式化为固定的小数位数

tofixed(num)可把 number 四舍五入为指定小数位数的数字

toprecision(num)可在对象的值超出指定位数时将其转换为指数计数法

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网