2

私の応答では、次の値を取得しています80.00000

DecimalFormat df = new DecimalFormat("##.##");
TextField.setText(df.format(Double.parseDouble(custom.getValue())));

私の問題は、80.000 を取得していることです。プリミティブ double 型を返す parseDouble を実行しており、この double を2 decimals.

80代わりに取得するのはなぜ80.00ですか?

やり方を変えてこれでやってみました。

TextField.setText(String.format("%2f",Double.parseDouble(custom.getValue()))); 

今、私は80.000000代わりに取得しています80.00

4

4 に答える 4

11

"%.2f"の代わりにする必要があります"%2f"

TextField.setText(String.format("%.2f",Double.parseDouble(custom.getValue())));

を追加するのを忘れます.

于 2013-04-24T12:14:54.777 に答える
2

java.text.NumberFormat良い代替手段です

final NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);
nf.setGroupingUsed(false);
System.out.println(nf.format(123456789.123456789));
于 2013-04-24T12:32:14.763 に答える
2

80.00 ではなく 80 になっているのはなぜですか?

最初の例は次のようになります。

DecimalFormat df = new DecimalFormat("##.00");

それ以外の場合、重要でない小数桁は抑制されます。

于 2013-04-24T12:17:27.843 に答える
0

String.format パラメータを に変更%2fします。%.2f

于 2013-04-24T12:18:27.393 に答える