c中将整数隐式转换为浮点数

时间:2015-11-20 13:10:37

标签: c precision

我无法理解为什么这段代码的输出是2147483648:

#include <stdio.h>
int main (void){
    float f = 2147483638;
    printf("%f",f);
}

我试图使用IEEE 754标准找到浮点表示的解释但是使用我的计算我得到的输出应该是2147483520,而不是2147483648。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

这就是float对您的系统有效的方式。

请注意,C标准在浮点类型的类型和大小方面是有意灵活的。 float 必须是IEEE754 32位浮点类型。