2

次のような一連の数字があります。

1.687155E21
3.981457E19
0.5532155E21 
3.018843E21
2.0532155E21 
4.5532155E21
3.1637913E19

私の問題は、10^19 で終わる 2 つの数字を他の数字 (10^21) のように変換する方法です。この統合の後、3.5 のようなものだけを印刷するために数値を切り捨てる必要があるためです。

C/C++ では正確に作業する方法を知っていますが、Java ではまったくわかりません。

4

4 に答える 4

2

すべての数値を で割り、必要な/ 1e19数の 10 進数に丸めます。

168.7155
3.981457
55.32155
301.8843
205.32155
455.32155
3.1637913
于 2012-08-28T18:32:47.770 に答える
2

Formatter クラスを使用して、目的の科学表記法に変換します ( java.util.Formatter ) 。

于 2012-08-28T18:34:27.830 に答える
1

Tomasz Nurkiewicz が行ったのと同様のことを提案しますが、 で割る代わりに、1E19Formatter 1E21(count0 のコメントを参照) を使用して必要な精度の文字列に変換しますが、科学的な形式ではなく、一般的な形式として変換します。最後に、これらの文字列に E21 を追加するだけです。最後に、あなたは得るべきです(私は、私が正しくアイデアを得たことを願っています)

1.687155E21
0.03981457E21
0.5532155E21 
3.018843E21
2.0532155E21 
4.5532155E21
0.031637913E21
于 2012-08-28T19:25:12.780 に答える
0

E19数字を掛けることはできません10 ^ 2 = 100か?

それらが に正規化された後、E21それらすべてを (浮動小数点の場合) で割ることができるはずで10^21あり、それらはすべて 0-9.999 の範囲になります...

于 2012-08-28T18:34:13.397 に答える