Last Update 2012/07/05
最小フィールド幅に続き、.(ピリオド)の後に数値を付けることで、次の指定が行えます。
[d, i, o, u, x, X]変換 : 最低限現れる桁数
[a, A, e, E, f, F]変換 : 小数点以下に現れる桁数
[g, G]変換 : 有効数字の最大数
[s]変換 : 現れる文字の最大数
(例)
#include <stdio.h>
int main()
{
printf("d変換 最小フィールド幅5文字 精度無し [%5d]\n", 123);
printf("d変換 最小フィールド幅5文字 精度5桁 [%5.5d]\n", 123);
printf("d変換 最小フィールド幅5文字 精度3桁 [%5.3d]\n", 12);
printf("d変換 最小フィールド幅5文字 精度3桁 [%5.3d]\n\n", 1234);
printf("f変換 最小フィールド幅8文字 精度無し [%8f]\n", 1234.12);
printf("f変換 最小フィールド幅8文字 精度3桁 [%8.3f]\n", 1234.12);
printf("f変換 最小フィールド幅8文字 精度1桁 [%8.1f]\n\n", 1234.12);
printf("g変換 最小フィールド幅8文字 精度5桁 [%8.5g]\n", 123456789.123456); // 有効数字が5桁
printf("e変換 最小フィールド幅8文字 精度5桁 [%8.5e]\n\n", 123456789.123456); // 小数点以下が5桁
printf("s変換 最小フィールド幅8文字 精度5文字 [%8.5s]\n", "1234567890");
return 0;
}
実行結果
d変換 最小フィールド幅5文字 精度無し [ 123]
d変換 最小フィールド幅5文字 精度5桁 [00123]
d変換 最小フィールド幅5文字 精度3桁 [ 012]
d変換 最小フィールド幅5文字 精度3桁 [ 1234]
f変換 最小フィールド幅8文字 精度無し [1234.120000]
f変換 最小フィールド幅8文字 精度3桁 [1234.120]
f変換 最小フィールド幅8文字 精度1桁 [ 1234.1]
g変換 最小フィールド幅8文字 精度5桁 [1.2346e+08]
e変換 最小フィールド幅8文字 精度5桁 [1.23457e+08]
s変換 最小フィールド幅8文字 精度5文字 [ 12345]