これで十分です。
DecimalFormat df2 = new DecimalFormat("#,##0.00");
System.out.println(df2.format(balance));
セパレーターのグループ化は、「最後の1つと整数の終わりの間の間隔」に従います。したがって、過剰に指定してもメリットはありません。のドキュメントからの例DecimalFormat
:
グループ化セパレーターは一般的に数千に使用されますが、一部の国では1万を分離します。グループ化サイズは、グループ化文字間の一定の桁数です。たとえば、100,000,000の場合は3、1,0000,0000の場合は4です。複数のグループ化文字を含むパターンを指定する場合、最後の文字と整数の終わりの間の間隔が使用されます。だから"#,##,###,####" == "######,####" == "##,####,####"
。
もう1つは、.format()
メソッドがすでに文字列を出力しているため、それをに変換しても意味がないということdouble
です。balance
が1000を超えると、例外がスローされます(区切り文字が有効になり、Double
クラスが区切り文字で文字列を解析できないポイント)。