所以我有一个Javascript脚本,它在一个循环中将小部分加在一起,它可能会增加0.2到0.1。然后该值被送到另一个函数,但问题是我需要0.3准确输入而不是0.30000000000000004。
确保数字得到纠正和准确的最简单方法是什么。请注意,可以将0.25 + 0.125等添加到简单地舍入到1个十进制,以解决问题。
也可以添加0.2 + 0.10000000000000004,尽管这非常非常不可能!
答案 0 :(得分:1)
在通用浮点运算中,没有简单的方法可以避免舍入误差。数字0.3
没有精确的二进制浮点表示。
我建议阅读What Every Computer Scientist Should Know About Floating-Point Arithmetic以熟悉数字浮点表示所固有的权衡。
要真正解决您的问题,您应该问自己一些问题:
0.30000000000000004
超出了您的错误范围?你的结果可以接受吗?BigDecimal
?最终,当遇到浮点精度问题时,您通常必须根据特定问题的要求定制解决方案。