を参照して、合計フィールド幅は、(少なくとも)5、小数点以下一桁が存在することになるであろう、そしてフィールドは左側にゼロパディングであろうパッディングなしで5ポジションより短い場合。 5桁以上の数字が必要な場合は、数字を使用します(たとえば、1.2E37
を印刷してみてください)。詳細については、printf()
のPOSIX仕様などの仕様を読んでください。例えば
:
#include <stdio.h>
int main(void)
{
double values[] =
{
0, 0.1, -1.0, 3.1415, -99.9, -123.4, -2345.6,
88.8, 777.77, 9876.54, -1000000.2, 222333444.555,
};
enum { NUM_VALUES = sizeof(values)/sizeof(values[0]) };
for (int i = 0; i < NUM_VALUES; i++)
printf("%16.5f = %05.1f\n", values[i], values[i]);
return 0;
}
出力例:
0.00000 = 000.0
0.10000 = 000.1
-1.00000 = -01.0
3.14150 = 003.1
-99.90000 = -99.9
-123.40000 = -123.4
-2345.60000 = -2345.6
88.80000 = 088.8
777.77000 = 777.8
9876.54000 = 9876.5
-1000000.20000 = -1000000.2
222333444.55500 = 222333444.6
はい、 '%のx.yf'、 'X'は、総幅で、' y'は、小数点以下の桁数です。 – Amadan