%f、%e(%E)、%g(%G)、および %a(%A) フォーマット文字は、float、Float、double、Double をフォーマットできます。ここで、
%f は、小数点以下 6 桁を保持した 10 進浮動小数点数として値をフォーマットします。
%e (%E) は、値を科学表記法の 10 進浮動小数点数としてフォーマットします。%E は、フォーマット時に指数記号を大文字にします。
例えば:
StringS=String.format(%f,%e,1234.56,1234.56);
この場合、文字列 s は 1234.560000,1.23456e+03 になります。
正の数値をフォーマットする場合、正の符号が強制的に追加されます。たとえば、%+f は 123.45 を +123.45 としてフォーマットし、%+E は 123.45 を +1.2345E+2 としてフォーマットします。
浮動小数点数をフォーマットする場合は、整数部分を「千」ごとにグループ化します。次に例を示します。
Strings=String.format(整数部分は千単位でグループ化されます:%+,f,123456789.987);
次に、文字列 s は、千の位ごとにグループ化された整数部分です: +123,456,789.987000。
「%.nf」は小数点以下の桁数を制限できます。n は保持される小数点以下の桁数です。たとえば、%.3f は 3.1415926 を 3.142 にフォーマットします (小数点以下 3 桁を保持します)。
データ幅を指定するための一般的な形式は%mdで、その効果は数値の左側にスペースを追加することです。これが%-mdの場合、その効果は数値の右側にスペースを追加することです。
たとえば、数値 12.34 を幅 10 の文字列にフォーマットするには、次のようにします。
Strings=String.format(%10f,12.34);
この場合、文字列 s は 12.340000 で、その長さ (s.length()) は 10 になります。つまり、s は 12.340000 の左側にスペース文字を追加します。
Strings=String.format(%-10f,12.34);
この場合、文字列 s は 12.340000 で、その長さ (s.length()) は 10 になります。つまり、s は 12.340000 の右側にスペース文字を追加します。
幅を指定するときに、次のように小数点以下の桁数 (%m.nf) を制限することもできます。
Strings=String.format(%10.2f,12.34);
この場合、文字列 s は 12.34 で、その長さ (s.length()) は 10 になります。つまり、s は 12.34 の左側に 5 個のスペース文字を追加します。
幅の前にプレフィックス 0 を追加することもできます。これは、左側の幅の残りの部分を埋めるのにスペースを使用せず、数値 0 を使用することを意味します。次に例を示します。
Strings=String.format(%010f,12.34);
この場合、文字列 s は 012.340000 で、その長さ (s.length()) は 10 になります。つまり、s は 12.340000 の左側に数値 0 を追加します。
注: 実際の数値の幅がフォーマットで指定された幅より大きい場合、数値は実際の幅に従ってフォーマットされます。