无法弄清楚答案是如何得出的

标签 c

<分区>

不知道怎么来的: 0.7 >0.7 是真的。似乎是一个技巧问题。

    void main()
float a=0.7;`

if(a < 0.7)`
{
     printf("TRUE");
}   

    else
    {
         printf("FALSE");
    }
}

最佳答案

这是因为变量 a 是一个 float,而常量 0.7double。浮点类型中 0.7 的表示不精确。当该值转换为 float 时,结果变得比 double 值略小。这种差异可能是双向的,即 float 表示在转换后可能会变得略大于相应的 double

添加 Actor 将解决问题:

if(a < (float)0.7) {
     printf("TRUE");
} else {
     printf("FALSE");
}

关于无法弄清楚答案是如何得出的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342784/

相关文章:

c - 对数学函数的复平面​​进行基准测试和检查的值是什么?

c - zint 条码库中缺少 png.h 头文件 :

c - 为什么我的程序不能读取带有 gets 函数的字符串并且它通过它并只给我早期 scanfs 的最终结果

c - 无法使阶乘函数在 C 中工作

c - 为什么这需要 malloc'd?

c - 这个 realloc 使用有什么问题

c - C if 语句编程

c - 如果未设置规范模式,非阻塞读取会失败吗?

c++ - 我在哪里可以找到 gtk+ (c++) 类型问题的主要论坛?

c - 错误原因及解决方法 -"undefined reference to ` newwin' "?