JS精度丢失&解决


0.1 + 0.2 !== 0.3;

精度丢失的原因

  • 计算机中所有的数据都是以二进制存储的,所以在计算时计算机要把数据先转换成二进制进行计算,然后在把计算结果转换成十进制
  • 二进制计算发生了精度丢失,导致再转换成十进制后和预计的结果不符。

解决

1. 把小数放到位整数(乘倍数),再缩小回原来倍数(除倍数)。

0.1 + 0.2;改为 (0.110 + 0.210) / 10 == 0.3; // true

2.

。。。


文章作者: polariis
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 polariis !
评论