C/C++中如何判断一个double类型的变量为零

如题所述

请看这里面的定义
C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\float.h
float,double分别遵循R32-24,R64-53的标准,他们的位数分别是23,52;即误差在2^-23,2^-52;所以float的精度误差在1e-6;double精度误差在1e-15
所以要判断一个单精度浮点数:则是if( abs(f) <= 1e-6);
要判断一个双精度浮点数:则是if( abs(f) <= 1e-15 );
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-12-27
浮点型不能直接比较是否等于0,需要设置相应的精度,在精度允许范围内都可以认为是0
代码:
#include<stdio.h>
#define jingdu 0.000001
int main(void)
{
double d = 0.00000001;
if(d - 0.0 < jingdu && d - 0.0 > -jingdu)
printf("d = 0");

return 0;
}本回答被网友采纳
第2个回答  2012-10-04
double a;
if(a==0.0)//若为0则执行
{
}
相似回答