作者在 2011-11-29 19:30:33 发布以下内容
我想比较浮点小数的大小,却出现了个问题
程序如下:
#include<stdio.h>
#include<math.h>
main()
{
float a;
scanf("%f",&a);
if(flabs(a-0.3)>0&&flabs(a-0.3)<1.0e-1)
printf("hao\n");
else printf("bu hao\n");
}
我想要的效果是当输入0.3000000到0.3999999的数时条件成立,其余的条件不成立;
为什么我输入0.2时输出的结果也是"hao"呢?
0.2-0.3的值为-0.1绝对值为0.1,不满足条件flabs(a-0.3)<1.0e-1。
我把条件改为if(flabs(a-0.3)=0)时,输入0.3却输出“bu hao",
0.3-0.3不是等于0吗?为什么会是条件不成立?
程序如下:
#include<stdio.h>
#include<math.h>
main()
{
float a;
scanf("%f",&a);
if(flabs(a-0.3)>0&&flabs(a-0.3)<1.0e-1)
printf("hao\n");
else printf("bu hao\n");
}
我想要的效果是当输入0.3000000到0.3999999的数时条件成立,其余的条件不成立;
为什么我输入0.2时输出的结果也是"hao"呢?
0.2-0.3的值为-0.1绝对值为0.1,不满足条件flabs(a-0.3)<1.0e-1。
我把条件改为if(flabs(a-0.3)=0)时,输入0.3却输出“bu hao",
0.3-0.3不是等于0吗?为什么会是条件不成立?