float类型的数a和0比较使用:
-
先判断是否相等:fabs(a-0)<1e-5。
-
再判断a大于0:a>0
-
和判断a小于0:a<0
由于浮点数的计算误差,0可能出现0.00000001或者-0.00000001等无限接近于0,所以先把该数a和0作差后的绝对值与一个很小的数比较,如果小于这个很小的数,则说明a等于0,否则就可以直接用a>0和a<0判断a和0的关系。
例如:
#include "stdio.h"
#include<math.h>
int main()
{
float i=0.01;
if(fabs(i-0)<1e-5)
printf("i等于0");
else if(i>0)
printf("i大于0");
else
printf("i小于0");
return 0;
}
/*
运行结果:
i大于0
*/

本文介绍了一种在C语言中比较浮点数是否等于零的方法,通过使用fabs函数与一个极小阈值进行比较来避免浮点运算带来的精度误差问题。

4325

被折叠的 条评论
为什么被折叠?



