【问题标题】:Can printf take a floating point variable as an argument for a %d format specifier? [duplicate]printf 可以将浮点变量作为 %d 格式说明符的参数吗? [复制]
【发布时间】:2017-03-12 08:30:42
【问题描述】:

所以,我的问题是,当我尝试使用 %d 作为格式说明符并打印一个浮点值“a”时,我得到的答案是 0。我想知道为什么会这样。

#include<stdio.h>
#include<conio.h>

void main()
{
    float a = 3.5;
    clrscr();
    printf("The value of a is:%d",a);
    getch();
}

【问题讨论】:

  • void main() 不是标准 C,并且 printf 转换说明符与参数类型不匹配意味着您的程序具有未定义的行为。任何事情都有可能发生。打印 0 是可能发生的问题最少的事情。

标签: c printf


【解决方案1】:

%d 说明符只接受整数。要格式化浮点数,请使用%f

请参阅printf manpage,了解如何选择应将哪种格式说明符用于哪个输入。

【讨论】:

    猜你喜欢
    • 2021-12-25
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2017-08-04
    • 2018-06-04
    • 1970-01-01
    相关资源
    最近更新 更多