问题描述
我知道某些数字会与其原始值略有不同。
- 例如。
0.1 + 0.2
->0.30000000000000004
。
但如果我做Math.round(0.30000000000000004 * 100) / 100
,我会得到正确答案 -> 0.3
。
我运行了 Javascript 测试,发现结果至少会准确到 1e+10
。
这样做有什么注意事项吗?
如果我在每次计算后都使用 Math.round(result * 100) / 100
,我能确定结果是准确的吗?
我计划进行的唯一计算是加法和乘法,并且所有数字都只有 2 位小数,由 Math.round(n * 100) / 100
确认。
我不需要精确到大约 $1000
的数字。
我能确定我的结果精确到最接近的美分吗?
解决方法
您在使用 Math.round(n * 100) / 100
时可能会遇到一些错误。
它不会总是给您预期的结果,例如:
console.log(Math.round(0.145*100)/100)
预期的结果是 0.15。这是因为有一些像 0.145 * 100 = 14.499999999999998
我建议使用不同的方法,例如:
有关该主题的更多信息: