我刚刚尝试了一个非常简单的javascript计算,如下所示:
8.87 + 7.1,但输出是如此不可预测:15.969999999999999
有谁能解释为什么?以及如何防止这种情况?
我正在使用Chrome来执行计算
答案 0 :(得分:1)
二进制数不能存储100%准确的浮点值。出于这个原因,会出现像你这样的不准确之处。看看以下参考文献:
Floating point inaccuracy examples
What causes floating point rounding errors?
What Every Computer Scientist Should Know About Floating-Point Arithmetic
答案 1 :(得分:0)
浮点计算精度大于整数。它有一些错误。防止它的最好方法是不使用float。