var a =0.1;var b =0.2;log(a+b)//0.30000000000000004这是什么原因
1 回答
三国纷争
TA贡献1804条经验 获得超7个赞
本质是因为浮点数的问题。
其实不用想的太复杂,你把0.1换算成二进制的形式就知道,它的二进制表示是一个无限循环的数。也就说实际上保存到内存里的0.1是一个近似值。
然后一个近似于0.1的二进制数再转回10进制,就会出现这种问题。
添加回答
举报
0/150
提交
取消
