浮点小数的比较
我想比较浮点小数的大小,却出现了个问题程序如下:
#include<stdio.h>
#include<math.h>
main()
{
float a;
scanf("%f",&a);
if(fabs(a-0.3)>0&&fabs(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,不满足条件fabs(a-0.3)<1.0e-1。
我把条件改为if(flabs(a-0.3)=0)时,输入0.3却输出“bu hao",
0.3-0.3不是等于0吗?为什么会是条件不成立?
哈哈,我已经试出来答案了,结果在最后一楼。
[ 本帖最后由 小赵q1 于 2011-11-29 23:35 编辑 ]