0.1 + 0.2
翻车现场
原因
Javascript 使用 Number 表示数字,使用64位固定长度来表示。
0.1
的二进制舍去之后就是(怎么转换? 有阶码等原理)
0.2
的舍去之后的二进制表示为:
两数相加转成10进值正好是`0.30000000000000004
第二个例子
相同的原理,下面的乘式也会出错
解决
最后更新于
Javascript 使用 Number 表示数字,使用64位固定长度来表示。
0.1
的二进制舍去之后就是(怎么转换? 有阶码等原理)
0.2
的舍去之后的二进制表示为:
两数相加转成10进值正好是`0.30000000000000004
相同的原理,下面的乘式也会出错
最后更新于