永发信息网

float怎么和0比较?

答案:3  悬赏:40  手机版
解决时间 2021-02-08 12:33
float怎么和0比较?
最佳答案
float类型的数a和0比较使用:
先判断是否相等:fabs(a-0)<1e-5。
再判断a大于0:a>0
和判断a小于0:a<0

由于浮点数的计算误差,0可能出现0.00000001或者-0.00000001等无限接近于0,所以先把该数a和0作差后的绝对值与一个很小的数比较,如果小于这个很小的数,则说明a等于0,否则就可以直接用a>0和a<0判断a和0的关系。
例如:
#include "stdio.h"
#include 
int main()
{
  float i=0.01;
  if(fabs(i-0)<1e-5)
  printf("i等于0"); 
  else if(i>0)
  printf("i大于0");
  else
  printf("i小于0"); 
  return 0;
}
全部回答
由于2进制表示,因此对于一个程序,在浮点数中,只能无限的逼近0而不能表示,所有的实数,因此在对于,浮点数与0进行比较时候,要进行范围比较。
例如 对于1,由于计算误差,最后的结果可能是0.999999999999999999.....或者1.000000000000000000001...它们与1用==比较就会不等了。
所以在计算机中对于浮点数的比较,主要是采用,和常数FLT_EPSILON 进行比较,当一个数字,落在-FLT_EPSILON ,FLT_EPSILON 之间的时候,就可以作为一个数字为0。
你问的是什么哦,是在Java里面吗?在Java里面可以直接比啊?比如说:
float a=0.5f;
int b=0;
if(a>b)
{
System.out.println("aljkfdlj");
}不会报错的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
从聊城到莱阳高速路桥费要多少呢?
精益刻章地址在哪,我要去那里办事
鑫盛茂达图文设计中心地址在什么地方,我要处
匮字开头的成语有哪些
x/lna的导数怎么求?
中国电信荔湾芳村营销服务中心在什么地方啊,
为什么我的两个SHIFT键同时失灵了,键盘绝对
统计表一般由( )等主要部分组成。A.表头B.
亲,你好!我知道产品的专利号,请问能否查到
那些爱我的人,那些迷失的风。歌的名子叫什么
每天几点什么台有关于美食的节目
囍洋洋儿童艺术照相地址在什么地方,想过去办
立邦专卖店这个地址在什么地方,我要处理点事
梦见被前夫刺伤手,然后被我朋友刺死了,他的
零点红绿蓝数码影像中心地址在什么地方,想过
推荐资讯
机械表六针是什么意思啊?
墨塾教育(宁波鄞州区)地址在什么地方,想过去
新蕾电动车建平旗舰店这个地址在什么地方,我
只听啊的一声350字作业
饺子皮不好封口,死面一样,没弹性。一拉就断
如何使用微信钱包购买skype充值卡
东胜怎么到呼和浩特
成达货运(古渡路)地址在什么地方,我要处理点
求大神告知,做蛋糕用的特级低筋粉心粉和做手
平板支撑一次2分20秒怎么样?
一根电线长18米,第一次用去二分之一,第二次用
九连加油站地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?