6

654987Java で double の数値を使用すると、科学的な形式 (例: , ) の代わりにプレーンな文字列表現 (例:, ) を取得でき6.54987E5ますか?

BigDecimal.toPlainString()メソッドを使用できることはわかっていますが、BigDecimal単純に a を取得するためにString(本当に?) を作成するのは、少しずさんで非効率的なように思えます。誰か別の方法を知っていますか?

4

3 に答える 3

5
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()

于 2013-01-11T22:40:16.890 に答える
3

DecimalFormat/を使用しNumberFormatます。

例からの基本的な使用法:

NumberFormat nf = NumberFormat.getInstance();
output.println(nf.format(myNumber));

の場合DecimalFormat、数値をフォーマットするためのフォーマット パターン/ロケール情報を渡すことができます。 このリンクは、使用に関する優れたチュートリアルDecimalFormatです。

于 2013-01-11T22:41:48.020 に答える
0

次の方法で実行できます。

double number = 654987;

String plain = String.format("%.0f", number);
于 2013-01-11T23:48:44.663 に答える