精度指定
書式指定で、3 番目のフィールドは正確に固有です。 これは、換算の種類によって、文字列の文字数、10 進数、または出力される有効桁数を示す、負の 10 進整数に続くピリオドで () で構成されます。
幅の指定とは異なり、精度の仕様によって、出力値の切り捨てまたは浮動小数点値の丸めることになることがあります。 0 および変換される値が 0 であるため precision を指定すると、結果は次の例のように文字出力、です:
printf( "%.0d", 0 ); /* No characters output */
精度の指定にアスタリスク (*) の場合、引数リストに int の引数が値を指定します。 引数リストで、precision の引数には、この例に示す書式が設定される値を指定する必要があります:
printf( "%.*f", 3, 3.14159265 ); /* 3.142 output */
型は、次の表に示すように precision を省略した場合 precision の解釈や既定の精度が決まります。
有効桁数の値の型のように
型 |
説明 |
既定の |
---|---|---|
a, A |
精度は点の後の桁数を指定します。 |
既定の精度は 6.です。 有効桁数が 0 の場合、小数点は # フラグが使用する印刷されません。 |
c, C |
精度は無効です。 |
文字が印刷されます。 |
d, i, u, o, x, X |
精度は印刷される最小桁数を指定します。 引数の桁数が precision未満の場合、出力値はゼロの左で埋められます。 値は、桁数が precisionを超えると切捨てられません。 |
既定の精度は 1.です。 |
e, E |
精度は 10 進数の後に印刷する桁数を指定します。 最後の印刷された数字が丸められます。 |
既定の精度は 6.です。 precision が 0 の場合、またはピリオドとそれに続く数字なし () が小数点は印刷されません。 |
f |
有効桁数の値が小数点以下の桁数を指定します。 小数点が表示されたら、少なくとも 1 桁がその前に表示されます。 値が数値の適切な数に丸められます。 |
既定の精度は 6.です。 precision が 0 の場合、またはピリオドとそれに続く数字なし () が小数点は印刷されません。 |
g, G |
精度が印刷される有効桁数の最大値を指定します。 |
6 桁の有効桁数が出力され、後続のゼロは切り捨てられます。 |
s, S |
精度が印刷される最大文字数を指定します。 precision 以上の文字は表示されません。 |
文字が null 文字が出現するまで表示されます。 |