5

可能的重复:
JavaScript 的数学被破坏了吗?

为什么在某些编程语言中,标题中的表达式计算为真?我已经在 php、ruby 和 python 中尝试过。

4

3 回答 3

18

请阅读What Every Programmer Should Know About Floating-Point Arithmetic

于 2010-12-31T16:22:24.647 回答
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;
}
于 2010-12-31T16:27:21.813 回答
0

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

于 2010-12-31T16:25:03.600 回答