写出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比较大小的时候,可以直接用大于小于号。
【规则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语句——一道面试题分析
- 写出float x 与“零值”比较的if语句——一道面试题分析
- 写出float x 与“零值”比较的if语句——一道面试题分析
- 写出float x 与“零值”比较的if语句——一道面试题分析
- 写出float x 与“零值”比较的if语句——一道面试题分析
- 写出float x 与“零值”比较的if语句——一道面试题分析
- 写出float x 与“零值”比较的if语句(转载)
- 写出float x 与“零值”比较的if语句
- 请写出 float x 与“零值”比较的 if 语句(面试题)
- 写出bool,int,float,指针与零值比较的if语句
- 写出float x 与“零值”比较的if语句…
- 写出float x 与“零值”比较的if语句
- 写出float x 与“零值”比较的if语句
- 写出float x 与“零值”比较的if语句。
- 写出float x 与“零值”比较的if语句
- 零值比较--BOOL,int,float,指针变量与零值比较的if语句
- BOOL,int,float,指针变量 与“零值”比较的if语句
- bool,int,float,指针变量与零值比较的if语句
- 零值比较(bool,int,float,指针变量与零值比较的if语句)
- BOOL , float, 指针变量 与“零值”比较的 if 语句