web-dev-qa-db-ja.com

javaでdoubleを使用しているときに、整数から「.0」を削除するにはどうすればよいですか?

可能性のある複製:
javaで数値をフォーマットする方法

Doubleの使用に問題があります。結果が整数の場合、1.0、2.0などの「.0」で表示されます。

誰でも、その.0を完全に削除する方法を手伝ってくれますか?

22
ikzton

形式 表示する文字列。

3
mbeckish
import Java.text.DecimalFormat;


public class Asdf {

    public static void main(String[] args) {
        DecimalFormat format = new DecimalFormat();
        format.setDecimalSeparatorAlwaysShown(false);

        Double asdf = 2.0;
        Double asdf2 = 2.11;
        Double asdf3 = 2000.11;
        System.out.println( format.format(asdf) );
        System.out.println( format.format(asdf2) );
        System.out.println( format.format(asdf3) );
    }

}

プリント:

2
2.11
2,000.11

を使用して

DecimalFormat format=new DecimalFormat("#.#"); //not okay!!!

10 ^ 3、10 ^ 6などの区切り文字が乱れているため、正しくありません。

2000.11は「2,000.11」ではなく「2000.11」と表示されます

これは、不適切なtoString()を使用するだけでなく、適切にフォーマットされた数値を表示する場合に当然です。

また、ユーザーのLocaleおよびDecimalFormatに基づいてフォーマットが異なる場合があることに注意してください。ユーザーのLocaleを引数として使用するファクトリーメソッドを使用して初期化する必要があります。

NumberFormat f = NumberFormat.getInstance(loc);
 if (f instanceof DecimalFormat) {
     ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
 }

http://download.Oracle.com/javase/1.5.0/docs/api/Java/text/DecimalFormat.html

[〜#〜] update [〜#〜]このフォーマット文字列は、追加のメソッドを呼び出さなくても正常に機能します。

    DecimalFormat format=new DecimalFormat("#,###.#");
   //format.setDecimalSeparatorAlwaysShown(false);
46
MarianP

DecimalFormatを使用して、doubleをフォーマットする必要があります。

public static void main(String[] args) {
      DecimalFormat decimalFormat=new DecimalFormat("#.#");
      System.out.println(decimalFormat.format(2.0)); //prints 2
}
26
CoolBeans