float怎么和0比较?
答案:3 悬赏:40 手机版
解决时间 2021-02-08 12:33
- 提问者网友:欲劫无渡
- 2021-02-08 06:19
float怎么和0比较?
最佳答案
- 五星知识达人网友:不如潦草
- 2021-02-08 06:29
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;
}
先判断是否相等: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;
}
全部回答
- 1楼网友:执傲
- 2021-02-08 08:04
由于2进制表示,因此对于一个程序,在浮点数中,只能无限的逼近0而不能表示,所有的实数,因此在对于,浮点数与0进行比较时候,要进行范围比较。
例如 对于1,由于计算误差,最后的结果可能是0.999999999999999999.....或者1.000000000000000000001...它们与1用==比较就会不等了。
所以在计算机中对于浮点数的比较,主要是采用,和常数FLT_EPSILON 进行比较,当一个数字,落在-FLT_EPSILON ,FLT_EPSILON 之间的时候,就可以作为一个数字为0。
例如 对于1,由于计算误差,最后的结果可能是0.999999999999999999.....或者1.000000000000000000001...它们与1用==比较就会不等了。
所以在计算机中对于浮点数的比较,主要是采用,和常数FLT_EPSILON 进行比较,当一个数字,落在-FLT_EPSILON ,FLT_EPSILON 之间的时候,就可以作为一个数字为0。
- 2楼网友:傲气稳了全场
- 2021-02-08 07:30
你问的是什么哦,是在Java里面吗?在Java里面可以直接比啊?比如说:
float a=0.5f;
int b=0;
if(a>b)
{
System.out.println("aljkfdlj");
}不会报错的
float a=0.5f;
int b=0;
if(a>b)
{
System.out.println("aljkfdlj");
}不会报错的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯