web-dev-qa-db-ja.com

10進形式を使用して0を0.00として表示するにはどうすればよいですか?

次のコードを使用して、小数点以下2桁と千単位のカンマ区切り文字で数値を表示しています。

public static String formatNumber(double amount){
    DecimalFormat formatter = new DecimalFormat("#,###.00");
    return formatter.format(amount);
}

他の数値の場合は問題ありませんが、0は「.00」として返されます。「0.00」にしたいのですが、何を変更すればよいですか?

何故なの

return String.format("%.2f", amount);

それはそれを正しくフォーマットするでしょうね? (金額が123123.14233の場合、123123.14が返されます)

または

return String.format("%,.2f", amount); 

数値内のコンマの場合。 (金額が123123.14233の場合、123,123.14が返されます)

9
JClassic

#はオプションの数字を意味するため、代わりに0を使用すると、次のように機能します。

    DecimalFormat formatter = new DecimalFormat("#,##0.00");

ところで:私はあなたが4ではなく3 ###が必要だと思います。

17
eckes