#include<stdio.h>
int main()
{
float f = 0.1;
if (f == 0.1)
printf("True");
else
printf("False");
return 0;
}
以上代码是在我的课堂测试中给出的。我期望输出为true,但输出为False。为什么?
#include<stdio.h>
int main()
{
float f = 0.1;
printf("%f", f);
if (f == 0.1)
printf("True");
else
printf("False");
return 0;
}
说明:
浮点数具有定义的精度p=7
。即使您获得的所有这些额外的小数均为零,但由于IEE754浮点数的工作方式,您仍然会卡住它们。
#include<stdio.h>
int main()
{
float f = 0.1;
if (f == 0.1f)
printf("True");
else
printf("False");
return 0;
}