printf の精度指定子

提供: RAD Studio
移動先: 案内検索

printf、wprintf への移動


printf の精度指定子では、出力する最大文字数(または最小整数桁数)を設定します。

printf の精度指定は、先行するあらゆる指定子と区別するために常にピリオド(.)で始まります。

その次に、指定子と同様に、精度が以下のいずれかの方法で指定されます。

  • 10 進数字の文字列を使った直接指定
  • アスタリスク(*)を使った間接指定

精度指定子にアスタリスク(*)を使用した場合は、関数呼び出しの次の引数(int と見なされる)が精度を指定します。

幅や精度にアスタリスクを使用する場合は、幅引数が指定子の直後に現れる(その後に精度引数、変換するデータの引数が順に続く)必要があります。

[.prec] 出力精度への影響

(指定なし)

精度が次のとおり、デフォルトに設定されます。

= 1(d、i、o、u、x、X の各型の場合)

= 6(e、E、f の各型の場合)

= すべての有効桁(g、G の各型の場合)

= 最初の NULL 文字まで出力(s 型の場合)

= 影響なし(c 型の場合)

.0

d、i、o、u、x の各型の場合は、精度がデフォルトに設定されます。

e、E、f の各型の場合は、小数点が出力されません。

.n

n 文字または小数点以下 n 桁が出力されます。

出力値の文字数が n より多い場合、出力が切り詰められるか丸められる場合があります (そうなるかどうかは型文字で決まります)。

.

引数リストに精度指定子が指定されます。これは、書式設定の対象となる実際の引数より先に現れる必要があります。


次の条件をすべて満たす場合は、フィールドの数字が出力されません(つまり、フィールドが空になります)。

  • 精度を 0 と明示的に指定する。
  • フィールドの書式指定子が整数書式(d、i、o、u、x)のいずれかである。
  • 出力する値が 0 である。


変換に対する [.prec] の影響

型文字 変換に対する [.prec](.n)の影響

d

i

u

x

X

少なくとも n 桁を出力することを指定します。

入力引数が n 桁より少ない場合、出力値の左側がゼロで埋められます。

入力引数が n 桁より多い場合でも、出力値は切り詰められません。

e

E

f

小数点以下 n 桁を出力することを指定します(出力される最後の桁は丸められます)。

g

G

最大で有効数字 n 桁を出力することを指定します。

c

s

出力に対する影響はありません。

最大 n 文字を出力することを指定します。


関連項目