【double/float】浮点型数据为什么不能直接比较

由于浮点型的精度是有限的,经过运算就可能存在舍入误差,比如(x/y)*y != x。所以如果要比较浮点型数值,最好要先定义一个极小值MIN作为允许误差。

1.浮点型与0比较

#define MIN 0.0000000001 
double temp;
if (abs(temp)<MIN) 
{
	return;
}

2.浮点型与其他数值比较

#define MIN 0.0000000001 
double temp;
if(abs(temp - 2.5< MIN)
{
	return ;
}

猜你喜欢

转载自blog.csdn.net/qq_33033059/article/details/102708989