C++中 如何判断一个浮点数是否为0
5个回答
展开全部
判断这个实数的绝对值是否小于一个很小的实数,
比如绝对值小于1e-6
比如绝对值小于1e-6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double
a;
if(a-0.0<1e-6)
return
true;
else
return
false;
原来和楼上说的一样。
a;
if(a-0.0<1e-6)
return
true;
else
return
false;
原来和楼上说的一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double a;
if(fabs(a)<1e-6)
return true;
else
return false;
if(fabs(a)<1e-6)
return true;
else
return false;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float f=0.000
bool bl=f>-0.000001&&f<0.000001;
大概就是这样。
bool bl=f>-0.000001&&f<0.000001;
大概就是这样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float a;
if(a==0)
//...
题主所问,以上。
if(a<1e-6)根本就不是用来比较a是否等于0的,而是用来比较a是否约等于0。当a=1e-7时,条件依旧成立,此时a为0?
我不知道是谁把问题曲解成了这样,误导别人。1.0==1.0肯定是真的,这个东西的用处在于比如循环a从0开始加0.1255,何时a==1?因为a在相加过程中不会严格意义上等于1,所以需要一个误差范围,在这个范围内时认为a约等于1。
if(a==0)
//...
题主所问,以上。
if(a<1e-6)根本就不是用来比较a是否等于0的,而是用来比较a是否约等于0。当a=1e-7时,条件依旧成立,此时a为0?
我不知道是谁把问题曲解成了这样,误导别人。1.0==1.0肯定是真的,这个东西的用处在于比如循环a从0开始加0.1255,何时a==1?因为a在相加过程中不会严格意义上等于1,所以需要一个误差范围,在这个范围内时认为a约等于1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询