web-dev-qa-db-ja.com

先行0を使用して、小数点以下2桁から2桁にフォーマットします。

可能性のある複製:
小数点以下2桁から2桁の有効数字

先行ゼロを使用して、小数点以下2桁から2桁をフォーマットしようとしていますが、運がありません。ここに私のコードがあります:

Double price = 32.0;
DecimalFormat decim = new DecimalFormat("#.##");
Double price2 = Double.parseDouble(decim.format(price));

そして、出力を32.00にする代わりに32.0を取得します
解決策はありますか??

34
Bat_Programmer

OPは先行ゼロが必要です。その場合、Tofubeerによると:

_    DecimalFormat decim = new DecimalFormat("0.00");
_

編集:

ここでは、数値の内部表現ではなく、数値のフォーマットについて説明していることに注意してください。

_    Double price = 32.0;
    DecimalFormat decim = new DecimalFormat("0.00");
    Double price2 = Double.parseDouble(decim.format(price));
    System.out.println(price2);
_

デフォルト形式を使用して_price2_を出力します。書式設定された表現を印刷する場合は、次の形式を使用して印刷します。

_    String s = decim.format(price);
    System.out.println("s is '"+s+"'");
_

この観点から、あなたのparseDouble()はあなたが望むことをしているとは思いませんし、できません。

53
Tony Ennis

これを試して:

 DecimalFormat decim = new DecimalFormat("#.00");
14
TofuBeer