注意!!!切不可将浮点变量(float, double等)用 “==” 或 “!=” 与任何数字进行比较。正确的做法是转化成 “>=” 或 “<=” 的形式去比较。
1. 错误示例
例如,double浮点变量和0的比较,不要写成 if (x == 0),这种是错误的。
2. 正确示例
其中,EPSINON是允许的误差,可根据自己程序的需要定义精度。
#define EPSINON 0.00001 // 自己按照程序需要的精度定义
double x;
if (x >= - EPSINON && x <= EPSINON) {
printf("x is not allowed.");
}