我知道某些数字的原始值会有细微的变化。
- 例如。
0.1 + 0.2
->CCD_ 2
但如果我做Math.round(0.30000000000000004 * 100) / 100
,我会得到正确的答案->0.3
。
我运行了一个Javascript测试,发现结果至少可以精确到1e+10
。
这样做有什么需要注意的吗?
如果我每次计算后都使用Math.round(result * 100) / 100
,我能确定结果是否准确吗?
我计划做的唯一计算是加法和乘法,所有数字只有两个小数位,如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
这样的浮动
我建议使用不同的方法,例如:
预期回合
编号.EPSILON
关于该主题的更多信息:
如有必要,如何四舍五入至小数点后最多2位?
如何用javascript格式化浮点值?