精度指定
書式指定の中で省略できる 3 番目のフィールドは、精度 (precision) 指定フィールドです。 このフィールドには、ピリオド (.) に続けて、出力する文字数、小数点以下の桁数、または有効桁数を負でない 10 進整数で指定します。「型に対する精度指定の効果」の表を参照してください。 文字幅指定とは異なり、精度指定では出力値が切り捨てられたり、浮動小数点数が丸められたりすることがあります。 precision に 0 を指定し、変換する値を 0 にすると、文字は出力されません。
printf( "%.0d", 0 ); /* No characters output */
精度指定にアスタリスク (*) を指定すると、引数リストの int 型の引数から値が提供されます。 引数 precision は、引数リストの中で、書式指定する値の前に指定します。
precision に指定した値がどのように解釈されるか、precision を指定しない場合の既定の処理は、次のように、指定した型によって異なります。
型に対する精度指定の効果
次のように入力します。 |
説明 |
既定 |
---|---|---|
a、A |
精度には小数点以下の桁数を指定します。 |
既定の精度は 6 です。 精度を 0 にすると、# フラグを使用しない限り、小数点は出力されません。 |
c、C |
精度指定は無効です。 |
文字が出力されます。 |
d、i、u、o、x、X |
出力する桁数の最小値を指定します。 引数中の桁数が precision に指定した値より小さい場合は、出力値の左に 0 が埋め込まれます。 桁数が precision の値を超えた場合でも、値は切り捨てられません。 |
既定の精度は 1 です。 |
e、E |
小数点以下の出力桁数を指定します。 出力される最後の数字は丸められます。 |
既定の精度は 6 です。 場合精度0 またはなしに数をそれに続くピリオド (.) が表示されます、小数点は出力されません。 |
f |
小数点以下の桁数を指定します。 小数点が表示される場合は、整数部に少なくとも 1 つは数字が表示されます。 値は適切な桁数まで丸められます。 |
既定の精度は 6 です。 場合精度0、またはそれに続く番号なしピリオド (.) が表示された場合は、小数点は出力されません。 |
g、G |
出力する有効桁数の最大値を指定します。 |
6 桁の有効桁数 6 桁が出力され、後続の 0 は切り捨てられます。 |
s、S |
出力する最大文字数を指定します。 precision の値を超える文字は出力されません。 |
NULL 文字に到達するまで、文字が出力されます。 |
浮動小数点指定子に対応する引数が無限大、不定、または非数 (NaN) の場合、printf 関数による出力は次のとおりです。
値 |
出力 |
---|---|
+ 無限大 |
1.#INFrandom-digits |
– 無限大 |
–1.#INFrandom-digits |
不定 (クワイエット型非数 (quiet NAN) と同じ) |
digit.#INDrandom-digits |
非数 (NaN) |
digit.#NANrandom-digits |