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

 我来答
百度网友76bc4363f
推荐于2017-11-25 · TA获得超过1019个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:258万
展开全部
请看这里面的定义
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 );
wanglixin1001
推荐于2018-12-27 · TA获得超过4174个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:879万
展开全部
浮点型不能直接比较是否等于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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wzbsgsa
2012-10-04 · TA获得超过954个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:394万
展开全部
double a;
if(a==0.0)//若为0则执行
{
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式