为什么在printf中int不能转换为double?

时间:2012-08-07 17:46:35

标签: c int double printf

  

可能重复:
  How is conversion of float/double to int handled in printf?

main()
{
    printf("%f",1);
}

我预期的输出是1.000000,即 int 1 被提升为加倍1.000000 ,但它给出了0.000000。为什么会这样?

1 个答案:

答案 0 :(得分:4)

如果为格式化指令提供了不匹配的参数(在本例中为int%f),则生成的行为为 undefined

此问题或其中的一些变体会定期出现,有关示例/更多信息,请参阅What is printf's behaviour when printing an int as float?problem with printf function?