This post表示由于舍入错误,您不应将浮点变量与==
进行比较。我应该使用什么,何时使用?
答案 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();
}