您的位置:首页 > 职场人生

写出float x 与“零值”比较的if语句——一道面试题分析

2015-04-24 14:53 274 查看
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比较大小的时候,可以直接用大于小于号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: