float a = 0.5;
float b = 0.7;
printf("%f",a);
printf("\n");
printf("%f",b);
if(a == .5)
printf("\nOK\n");
else
printf("NOTOK\n");
if(b == .7)
printf("OK");
else
printf("NOTOK");
对于a和b,似乎输出应该是正常的,但对于b而言输出是正常的但是NOTOK。为什么呢?
答案 0 :(得分:1)
对于float
个数字,您需要将其表示为示例:0.5f
。下面的示例已经过测试且工作正常。
float a = 0.5;
float b = 0.7;
printf("%f",a);
printf("\n");
printf("%f",b);
if(a == 0.5f && b == 0.7f)
{
printf("\nOK\n");
}
else
{
printf("NOTOK\n");
}
答案 1 :(得分:0)
.5
和.7
是常量,它们被翻译为double。在末尾添加“f”符号,告诉编译器.5f
和.7f
是浮点数。
if(a == .5f)
printf("\nOK\n");
else
printf("NOTOK\n");
if(b == .7f)
printf("OK");
else
printf("NOTOK");