Floating point 0.1+;0.7 != 0.8

Floating point 0.1+;0.7 != 0.8,floating-point,floating-accuracy,boolean-expression,Floating Point,Floating Accuracy,Boolean Expression,可能重复: 为什么在某些编程语言中,title中的表达式的计算结果为true?我曾在php、ruby和python中试用过。请阅读。由于浮点数的内部解释,它们与您编写的不完全相同。双容差

可能重复:


为什么在某些编程语言中,title中的表达式的计算结果为true?我曾在php、ruby和python中试用过。

请阅读。

由于浮点数的内部解释,它们与您编写的不完全相同。

双容差<1.0E-10;
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;
}
if(晶圆厂(0.1+0.7-0.8)<公差) {
std::不可能重复和大约一百个其他问题。这个问题的公认答案非常棒。它的计算结果为true,因为它为true(当0.1等为浮点文本时)。