0.1 + 0.2
翻车现场

原因
Javascript 使用 Number 表示数字,使用64位固定长度来表示。

0.1
的二进制舍去之后就是(怎么转换? 有阶码等原理)
0.00011001100110011001100110011001100110011001100110011010
0.2
的舍去之后的二进制表示为:
0.0011001100110011001100110011001100110011001100110011010
两数相加转成10进值正好是`0.30000000000000004
第二个例子
相同的原理,下面的乘式也会出错
35.41 * 100 = 3540.9999999999995
解决
最后更新于
这有帮助吗?