可能性のある複製:
javaで数値をフォーマットする方法
Doubleの使用に問題があります。結果が整数の場合、1.0、2.0などの「.0」で表示されます。
誰でも、その.0を完全に削除する方法を手伝ってくれますか?
形式 表示する文字列。
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);
DecimalFormatを使用して、doubleをフォーマットする必要があります。
public static void main(String[] args) {
DecimalFormat decimalFormat=new DecimalFormat("#.#");
System.out.println(decimalFormat.format(2.0)); //prints 2
}