0

例えば:

ダブルa=2000; System.out.println(a);

2000.0を印刷しますが、2E3を印刷したいと思います。2の2倍で2E0などが欲しいです。

20000000(2E7)に達すると、このように印刷が開始されることを知っています。Doubleの任意の値に対してそれを実行したいと思います。これを行うための自由/機能はありますか?私は何時間もグーグルの結果を調べても役に立たなかった。.toHexCode()出力を頻繁に操作することでこれが可能になるかもしれないという印象を受けますが、その出力のドキュメントに頭を悩ませることはできませんでした。どうすればこれを行うことができますか?

4

3 に答える 3

3

DecimalFormatのドキュメントをご覧ください。必要なことを実行できます。

編集:ここに例があります(これをチェックしていません):

double myDouble = 2000;
NumberFormat formatter = new DecimalFormat("0E0");
System.out.println(formatter.format(myDouble)); // Should print "2E3"
于 2011-02-20T19:53:20.593 に答える
3

これは2E3を印刷します。DecimalFormatクラスの詳細については、こちらをご覧ください。

double a = 2000; 
DecimalFormat formatter = new DecimalFormat("###E0");       
System.out.println(formatter.format(a));
于 2011-02-20T19:55:42.567 に答える
2

それはjava.util.Formatterの仕事のように聞こえます。自分で使ったことはありませんが、科学的記数法ができるようです。APIエントリはここにあります:http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

于 2011-02-20T19:53:04.893 に答える