【问题标题】:Difference between %d and %.d in C languageC语言中%d和%.d的区别
【发布时间】:2023-03-13 07:13:01
【问题描述】:

我编写了以下代码并收到了空白输出

int main(){

    int y=0;

    printf("%.d", y);

    return 0;
}

相反,如果我只使用%d,我会得到0 作为输出。

%d%.d 有什么区别。

非常感谢您的建议!

【问题讨论】:

    标签: c format-specifiers


    【解决方案1】:

    转换说明符之前的. 称为“精度”。来自printf man page(强调我的):

    可选精度,形式为句点 ('.'),后跟可选的十进制数字字符串。而不是十进制数字字符串,可以写“*”或“*m$”(对于一些十进制整数m)来指定精度分别在下一个参数或第m个参数中给出,这必须是int 类型。 如果精度只给出'.',或者精度为负,精度为零。这给出了 d、i、o、u、x 和 X 转换出现的最小位数

    d, 我

    int 参数被转换为有符号十进制表示法。精度(如果有)给出了必须出现的最小位数;如果转换后的值需要较少的数字,则在左侧用零填充。 默认精度为1。当打印0时,显式精度为0,输出为空

    所以对于示例代码,%.d 表示零精度的整数转换。零精度意味着最少零位数。由于要转换的值是0,由于零精度,它根本不显示。相比之下,%d 没有明确的精度,因此默认为 1 的精度,从而导致打印 0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2013-03-17
      相关资源
      最近更新 更多