精度指定
ファイル形式仕様では、3 番目のオプションのフィールドは精度指定です。これは、変換の種類に応じて、文字列の文字数、小数点以下の桁数、または出力される有効桁数を指定する負の 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 |
精度は、小数点以下で印刷される桁数を指定します。最後の印刷された数字が切り捨てられます。 |
既定の精度は 6.です。precision が 0 である場合、または期間が後続の数を使用せずに (ある場合)。小数部は印刷されません。 |
f |
有効桁数の値が小数点以下の桁数を指定します。小数点が表示された場合は、少なくとも 1 桁がその前に表示されます。値は数字、適切な数に丸められます。 |
既定の精度は 6.です。precision が 0 であるか、またはピリオドが後続の数を使用せずに (ある場合)。小数部は印刷されません。 |
g, G |
精度が印刷される有効桁数の最大数を指定します。 |
6 桁の有効桁数が出力され、後続のゼロは省略されます。 |
s, S |
精度が印刷される最大文字数を指定します。precision 以上の文字は表示されません。 |
文字が null 文字が出現するまで出力されます。 |