[数据类型和条件构造

问题描述 投票:0回答:2
#include<stdio.h>
int main()
{
 float f = 0.1;
        if (f == 0.1)
            printf("True");
        else
            printf("False");
  return 0;
}

以上代码是在我的课堂测试中给出的。我期望输出为true,但输出为False。为什么?

c
2个回答
0
投票
#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浮点数的工作方式,您仍然会卡住它们。

0
投票
喜欢这个:

#include<stdio.h> int main() { float f = 0.1; if (f == 0.1f) printf("True"); else printf("False"); return 0; }

© www.soinside.com 2019 - 2024. All rights reserved.