4.3.3 浮点变量与零值比较
【规则4-3-3】不可将浮点变量用“==”或“!=”与任何数字比较。
千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将
if (x == 0.0) // 隐含错误的比较
转化为
if ((x>=-EPSINON) && (x<=EPSINON))
其中EPSINON是允许的误差(即精度)。
if(f > EPSINON){}// f > 0
else if(f< -EPSINON) {} // f < 0
else if(d <= fabs(EPSINON)) {}// f== 0
// [-EPSINON,EPSINON]区间都代表0,就好理解了。
两个非0的float比较大小的时候,可以直接用大于小于号。
写出float x 与“零值”比较的if语句——一道面试题分析
最新推荐文章于 2024-06-09 09:59:16 发布