0.1 + 0.7!= 0.8

时间:2010-12-31 16:20:39

标签: floating-point floating-accuracy boolean-expression

  

可能重复:
  Is JavaScript's Math broken?

为什么在某些编程语言中,title中的表达式求值为true?我在php,ruby和python中尝试过它。

3 个答案:

答案 0 :(得分:18)

答案 1 :(得分:2)

double TOLERANCE < 1.0E-10;
if(fabs(0.1+0.7-0.8)< TOLERANCE)
{
    std::cout << "0.1 + 0.7 == 0.8" << std::endl;
}
else
{
    std::cout << "0.1 + 0.7 != 0.8" << std::endl;
}

答案 2 :(得分:0)

由于浮点数的内部解释,它们并不完全等于你所写的。