首页 > 解决方案 > 数据类型和条件构造

问题描述

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

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

标签: c

解决方案


在 c 语言中,浮点变量默认包含 7 个小数,但您将其与 if 检查中的一个小数进行比较。您可以在小数后写 f 来表示所有小数。现在它将回答 True。

像这样:

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

推荐阅读