【问题标题】:why isn't int converted to double in printf? [duplicate]为什么int在printf中不转换为double? [复制]
【发布时间】:2012-08-04 18:50:16
【问题描述】:

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

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

我期望的输出是 1.000000,即 int 1 被向上转换为 double 1.000000,但它给出了 0.000000。为什么会这样?

【问题讨论】:

  • 您缺少printf() 的原型。即使有了原型,你的程序仍然会出错。
  • 到底为什么它被转换成双倍?

标签: c int double printf


【解决方案1】:

当向格式化指令提供不匹配的参数时(在本例中为int%f),结果行为是未定义

这个问题或它的某些变体会定期出现,请参阅What is printf's behaviour when printing an int as float?problem with printf function? 以获取示例/更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-24
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 2015-06-03
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多