我可以安全地使用javascript中的数字类型进行小数点后2位的计算吗



我知道某些数字的原始值会有细微的变化。

  • 例如。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格式化浮点值?

最新更新