TOP - C言語 - stdio.h - フォーマット文字列(fprintf, printf, sprintf) - 精度

最小フィールド幅に続き、.(ピリオド)の後に数値を付けることで、次の指定が行えます。

[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]


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.