【发布时间】:2015-06-12 20:10:52
【问题描述】:
所以我有一个 Javascript 脚本,它在一个循环中将小部分加在一起,它可能会将 0.2 添加到 0.1。然后将该值提供给另一个函数,但问题是我需要准确地提供 0.3 而不是 0.30000000000000004。
确保数字正确无误的最简单方法是什么。请注意,将 0.25+0.125 等添加到简单的四舍五入到小数点后不会解决问题。
也可以添加 0.2 + 0.10000000000000004,尽管这非常非常不可能!
【问题讨论】:
-
0.25+0.125 是一个不寻常且简单的案例。两个值及其总和都可以精确表示,因此不存在舍入误差。 0.3 的情况并非如此。您可以获得的最接近的是 0.299999999999999988897769753748434595763683319091796875。够近了吗?
-
这不是一个解决方案,但你的数学越笨,越准确
-
您的小号是如何制作的?您最好将所有内容乘以
1000 -
你可以使用 (parseFloat('0.1') + parseFloat('0.1')).toFixed(2);如果您想要小数点后的 n 位数,请将 n 添加到固定
标签: javascript floating-point numbers