float,double判断相等

 bool DoubleEqual(double v1, double v2)
{
return (v1 <= (v2 + DBL_EPSILON)) && (v1 >= (v2 - DBL_EPSILON));

}    

bool FloatEqual(float v1, float v2)
{
return (v1 <= (v2 + FLT_EPSILON)) && (v1 >= (v2 - FLT_EPSILON));

}

在float.h中定义

#define FLT_EPSILON      1.192092896e-07F        // smallest such that 1.0+FLT_EPSILON != 1.0

#define DBL_EPSILON      2.2204460492503131e-016 // smallest such that 1.0+DBL_EPSILON != 1.0

猜你喜欢

转载自blog.csdn.net/qianpeng4/article/details/80952609