如何比较C ++中的浮点变量?

时间:2016-04-04 12:18:28

标签: c++ floating-point

This post表示由于舍入错误,您不应将浮点变量与==进行比较。我应该使用什么,何时使用?

2 个答案:

答案 0 :(得分:3)

你可以使用类似的东西 if (abs(result - expected) < 0.00001)

或相对而非绝对的错误:

float relativeError = abs((A - B) / B);
    if (relativeError <= maxRelativeError)

有关详细信息,请参阅此处。 http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm

答案 1 :(得分:-2)

bool AreSame(double a, double b)
{
    return fabs(a - b) < std::numeric_limits<double>::min();
}