由于浮点型的精度是有限的,经过运算就可能存在舍入误差,比如(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 ; }