使用整数类型说明符打印浮点

时间:2016-02-23 15:42:02

标签: c

我有以下C代码。

int main (void)
{
    printf("%d\n",5/(float)4.7);
    printf("Size of int = %d",sizeof(int));
    return(1);
}

但结果是1610612736 我期待结果为1,因为我们打算打印一个整数。为什么会这样?如何将浮点值转换为printf语句中的较大值? 我正在使用codeblock + mingw

1 个答案:

答案 0 :(得分:4)

当您尝试打印整数时,您必须将结果转换为int

printf("%d\n",(int)(5/(float)4.7));

否则5/(float)4.7float

您看到1610612736,因为float值为“已解释”,而int导致奇数结果。