654987
Java で double の数値を使用すると、科学的な形式 (例: , ) の代わりにプレーンな文字列表現 (例:, ) を取得でき6.54987E5
ますか?
BigDecimal.toPlainString()
メソッドを使用できることはわかっていますが、BigDecimal
単純に a を取得するためにString
(本当に?) を作成するのは、少しずさんで非効率的なように思えます。誰か別の方法を知っていますか?
double d = 12345678;
System.out.println(d);
System.out.println(String.format("%.0f", d));
1.2345678E7 12345678
この文字列表現のみを出力する必要がある場合は、単純に を使用できることに注意してくださいSystem.out.printf("%.0f", d)
。
丸めがまったく必要ない場合は、あなたが提案したもの、つまり に固執します(new BigDecimal(d)).toPlainString()
。
DecimalFormat
/を使用しNumberFormat
ます。
例からの基本的な使用法:
NumberFormat nf = NumberFormat.getInstance();
output.println(nf.format(myNumber));
の場合DecimalFormat
、数値をフォーマットするためのフォーマット パターン/ロケール情報を渡すことができます。 このリンクは、使用に関する優れたチュートリアルDecimalFormat
です。
次の方法で実行できます。
double number = 654987;
String plain = String.format("%.0f", number);