在printf函数中显示整数

时间:2015-06-06 03:42:45

标签: c

我喜欢这个程序:

printf("%.2d", 5);

我认为它应该只显示:5但显示:05。你能解释一下它是如何运作的吗?

2 个答案:

答案 0 :(得分:3)

它被称为精度修饰符,写为.number,并且对于不同的转换说明符具有略微不同的含义

对于浮点数(例如%f),它控制小数点后打印的位数:

printf( "%.3f", 1.2 );

将打印:

1.200

如果提供的数字比给定的数字更精确,它将会舍入。例如:

printf( "%.3f", 1.2348 );

将打印:

1.235

对于g和G,它将控制显示的有效数字的数量。这不仅会影响小数点后的值,还会影响整数。

printf( "%.3f\n%.3g\n%.3f\n%.3g\n", 100.2, 100.2, 3.1415926, 3.1415926 );

将打印:

100.200 // %.3f, putting 3 decimal places always
100     // %.3g, putting 3 significant figures
3.142   // %.3f, putting 3 decimal places again
3.14    // %.3g, putting 3 significant figures

另一方面,对于整数,它控制打印的最小位数的精度:

printf( "%.3d", 10 );

将打印:

010

最后,对于字符串,精度控制显示的字符串的最大长度:

printf( "%.5s\n", "abcdefg" );

将打印:

abcde

来源:Printf Format Strings

答案 1 :(得分:0)

2中的"%.2d"表示您要打印至少2位数字。同样,如果您想打印至少3位数字,可以使用"%.3d"。如果你不想要额外的数字(即没有填充0和#),你可以单独使用"%d"

Man pages是你最好的朋友