2011-12-14 14 views
2

DecimalFormatの正確な動作を完全に理解しようとしています。私は現在、このクラスの科学的表記機能を使っていくつかのテストを行っています。そして私は、科学記法での有効数字の正確な数のチューニングに関する問題に直面しています。ジャワ7のJavadocによると:DecimalFormatでの科学記法の有効桁数

仮数の有効桁数は 最小整数と最大小数の桁数の合計であり、そして 最大整数桁に影響されません。たとえば、 "## 0。## E0" でフォーマットされた12345は "12.3E3"です。すべての桁を表示するには、有効桁数を に設定します。有効桁数は解析に影響しません。

DecimalFormat formatone = new DecimalFormat("##0.##E0"); 
System.out.println(formatone.format(toF)); 

そして、私は次のような出力入手:

その結果、私はそれをテストしてる私がちょうど示してきたのJavadocの抜粋によると

12,345E3 

を、私は思いました私は得るべきである

12.3E3 

私は何かをしているロング?私は間違ったことを理解していますかすべてのあなたの明確化のために事前に

おかげhttp://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.htmlから

答えて

0

:-)以下の「説明」を茎1つは不思議です。

整数桁の最小および最大数は一緒に解釈される:

整数の最大桁数が1よりもそれらの最小数より大きく、大きい場合は、最大数の倍数になるように指数を強制整数の最小桁数は1と解釈されます。これの最も一般的な使用法は、指数が3の倍数であるエンジニアリング表記を生成することです(例: "## 0。#### #E0 "となる。このパターンを使用すると、番号12345は「12.345E3」に、123456は「123.456E3」にフォーマットされます。

関連する問題