因为实数在计算和存储时会有一定的误差,如果直接用if(a==0)判断,可能本来是0的数被误判为非0,比如如下程序,
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
float a;
float b,c;
b=2.0;
c=sqrt(2);
a=b-c*c;
if(a==0)
printf("a==0");
else
printf("a!=0");
return 0;
}
运行结果为a!=0,但如果换用if(a<1e-6)判断,则输出a==0