c - 数据类型和条件构造
问题描述
#include<stdio.h>
int main()
{
float f = 0.1;
if (f == 0.1)
printf("True");
else
printf("False");
return 0;
}
上面的代码在我的课堂测试中给出。我期待 true 作为输出,但 False 是输出。为什么?
解决方案
在 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;
}
推荐阅读
- sql - 仅计算每个月的活动记录
- c++ - Valgrind 报告 QThread::start() 上的内存泄漏
- javascript - 检查 grapqhl 查询返回的对象的形状
- mysql - 从今天到昨天排序
- r - ggplot2 - 如何根据分类和数值变量对堆积条进行排序
- string - 无法比较 mongodb 集合中的字符串
- php - 在 localhost 上使用 apache 的 Docker php:ERR_SSL_PROTOCOL_ERROR
- dynamics-crm - 使用 Web API 进行用户模拟
- java - Gradle API 抛出错误无法从“11”确定 java 版本
- python - 为什么我不能调整大小?