C/C++中如何判断一个double类型的变量为零
3个回答
展开全部
请看这里面的定义
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 );
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 );
展开全部
浮点型不能直接比较是否等于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;
}
代码:
#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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double a;
if(a==0.0)//若为0则执行
{
}
if(a==0.0)//若为0则执行
{
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询