0.1 + 0.2

翻车现场

原因

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

0.1的二进制舍去之后就是(怎么转换? 有阶码等原理)

0.2的舍去之后的二进制表示为:

两数相加转成10进值正好是`0.30000000000000004

第二个例子

相同的原理,下面的乘式也会出错

解决

最后更新于

这有帮助吗?