web-dev-qa-db-ja.com

Javaで数値を小数点以下2桁に変換します

実行時に数値を小数点以下2桁に変換します(常に小数点以下2桁を表示します)。私はいくつかのコードを試しましたが、以下に示すように、それだけです

 20.03034 >> 20.03
 20.3 >> 20.3  ( my code only rounds not converts )

しかし、私はそれをこれがしたいです:

 20.03034 >> 20.03
 20.3 >> 20.30 (convert it to two decimal places)

以下の私のコード:

angle = a variable
angle_screen =  a variable

DecimalFormat df = new DecimalFormat("#.##");
angle = Double.valueOf(df.format(angle));
angle_screen.setText(String.valueOf(angle) + tmp);

これを行う方法についての助けは素晴らしいでしょう、ありがとう。

26
Jack Trowbridge

これを試してくださいnew DecimalFormat("#.00");

更新

_    double angle = 20.3034;

    DecimalFormat df = new DecimalFormat("#.00");
    String angleFormated = df.format(angle);
    System.out.println(angleFormated); //output 20.30
_

コードでdecimalformatが正しく使用されていませんでした

パターンの0は必須の数字を意味し、#はオプションの数字を意味します。

更新2:以下の回答を確認してください

_0.2677_を_0.27_としてフォーマットする場合は、new DecimalFormat("0.00");を使用する必要があります。そうでない場合は_.27_になります

67
Rogel Garcia
DecimalFormat df=new DecimalFormat("0.00");

このコードを使用して、正確に2つの小数点を取得します。値が0.0であっても、出力としてu 0.00になります。

代わりに使用する場合:

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

0.26590.27に変換しません。 。27のような答えが得られます。

21
Anto Robinson

これを試してください:String.format("%.2f", angle);

15
Jagger

試して

DecimalFormat df = new DecimalFormat("#,##0.00");
2
Andre