JS浮点数问题

项目中遇到两个数相加 10.79 + 1.2 结果显示  11.989999999999998,一开始以为是两个值或者是类型问题导致计算问题,后来用 typeof   查看了两个数类型也对都是 Number类型,

这时候才想到是JS 语言计算精度的问题。

现在看到最经典的问题就是 0.1+0.2 !=0.3 活跃在多个面试题中。看到很多人已经解释过了就是计算机内部计算时采用的是二进制计算,而0.1转换成二进制就是0.0001 1001 1001 1001 无限循环,所以导致计算结果也无限循环,

最简单的方法就是先扩大10,100 倍之后在计算。

猜你喜欢

转载自www.cnblogs.com/cxx9759/p/12579637.html