Loose-Info.com

Last Update 2019/12/24


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]