3个变量的总和:奇怪的行为

Ant*_*ton 7 javascript algorithm floating-point binary sum

可能重复:
JavaScript的数学是否被破坏?
为什么十进制数不能用二进制表示?

下一个代码的结果是什么:

if(0.3 == ( 0.1 + 0.1 + 0.1 ))
{
      alert(true);
}
else
{
      alert(false);
}
Run Code Online (Sandbox Code Playgroud)

这很奇怪,但结果将是错误的.

原因是结果

0.1 + 0.1 + 0.1

将会

0.30000000000000004

怎么能解释这种行为?

Tud*_*tin 1

解释非常简单 - 阅读浮点数问题