我正在尝试将十进制字符串"0.00967040"
转换为整数967044
。但是,我得到以下输出:
> parseInt(0.00967040*1e8)
967039
> parseFloat(0.00967040*1e8)
967039.9999999999
> Math.round(parseFloat(0.009670440*1e8))
967044
> Math.ceil(parseFloat(0.009670440*1e8))
967045
> Math.floor(parseFloat(0.009670440*1e8))
967044
> Math.trunc(parseFloat(0.009670440*1e8))
967044
指定基数不能消除此问题:
> parseInt(0.00967040*1e8, 10)
967039
我在这里想念什么?
通过更多测试,我得到了想要的答案
Math.round(parseFloat("0.00967040")*1e8)
967040
...但是为什么呢?