我有以下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
答案 0 :(得分:4)
当您尝试打印整数时,您必须将结果转换为int
printf("%d\n",(int)(5/(float)4.7));
否则5/(float)4.7
是float
您看到1610612736
,因为float
值为“已解释”,而int
导致奇数结果。