这里'a'应打印为0.7< 0.7为假,但打印出“c”。
#include<stdio.h>
void main()
{
float a=0.7;
if(a<0.7)
printf("c");
else
printf("a");
}
答案 0 :(得分:0)
你似乎误解了浮点数。请参阅this question。
你可以做的一件事就是“好吧,它永远不会完全 0.7,所以也许我无法判断,但我可以关闭。 ..
然后,你选择一个粒度,比如百万分之一。您可以尝试将ie6 * a
的整数舍入结果与1e6 * 0.7
的整数舍入结果进行比较,以查看“a < 0.7
}?“,但”a
合理,足够接近,小于0.7
?“
或者,只是比较相同的类型。正如评论中所述,0.7
可能不是float
字面值,而是double
字面值。确保它是float
文字以确定,并打印'a'
。
void main()
{
float a=0.7;
if(a<0.7f)
printf("c");
else
printf("a");
}