web-dev-qa-db-ja.com

Java:ダブル:常に2桁の10進数を表示する方法

私はプロジェクトでdouble値を使用し、最初の2桁の数字がゼロであっても常に表示したいと思います。この関数を丸めに使用し、印刷する値が3.47233322の場合、(正しく)3.47を印刷します。しかし、たとえば、値2を印刷すると2.0が印刷されます。

_public static double round(double d) {
    BigDecimal bd = new BigDecimal(d);
    bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
    return bd.doubleValue();
}
_

2.00を印刷したい!

文字列を使用せずにこれを行う方法はありますか?

ありがとう!

編集:あなたの答えから(私はあなたに感謝します)提案された...私が欲しいのは、2つの値を直接ダブル値に保存することです!このようにSystem.out.println("" + d)(dは値2のdouble)のようなことをすると、2.00が出力されます。

私はこれを行う方法はないと考え始めています...そうですか?とにかく答えてくれてありがとう、解決策を知っているなら教えてください!

24
aveschini

次のようなものを使用できます。

 double d = 1.234567;
 DecimalFormat df = new DecimalFormat("#.00");
 System.out.print(df.format(d));

実際に質問に答えるように編集しました。実際の回答が必要で、これがGoogleで出てきて、小数が0のときにこれが機能しなかったにもかかわらず、誰かが答えとしてマークしました。

49

使用 Java.text.NumberFormat このため:

NumberFormat nf= NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
nf.setRoundingMode(RoundingMode.HALF_UP);

System.out.print(nf.format(decimalNumber));
19
darijan

これを簡単に行うことができます:

double d = yourDoubleValue;  
String formattedData = String.format("%.02f", d);
8
Miral Sarwar

DecimalFormatは、使用する最も簡単なオプションです。

double roundTwoDecimals(double d) {
        DecimalFormat twoDecimals = new DecimalFormat("#.##");
        return Double.valueOf(twoDecimals.format(d));
}

これで問題が解決することを願っています...

3
Mathias G.
Java.text.DecimalFormat df = new Java.text.DecimalFormat("###,###.##");
df.setMaximumFractionDigits(2); 
df.setMinimumFractionDigits(2); 
1
Vikash Kumar

このようなものを使用できます

答えにも0を保持する場合:Stringの形式で(0.00)を使用します

double d = 2.46327;
DecimalFormat df = new DecimalFormat("0.00");
System.out.print(df.format(d));

出力:2.46

double d = 0.0001;
DecimalFormat df = new DecimalFormat("0.00");
System.out.print(df.format(d));

出力:0.00

ただし、DecimalFormat df = new DecimalFormat( "0。##");を使用する場合

double d = 2.46327;
DecimalFormat df = new DecimalFormat("0.##");
System.out.print(df.format(d));

出力:2.46

double d = 0.0001;
DecimalFormat df = new DecimalFormat("0.##");
System.out.print(df.format(d));

出力:0

0
Sagar Vora