2011-12-14 27 views
2

我試圖充分了解DecimalFormat的確切行爲。我目前正在用這個課程的科學記數法功能進行一些測試。而且我正在用科學計數法調整有效數字的確切數量。根據Java 7中的的Javadoc:使用DecimalFormat的科學計數法有效位數

在尾數顯著位數是 最小整數和最大比例位數的總和,並且是由 最大整數位數不受影響。例如,使用「## 0。## E0」 格式化的12345是「12.3E3」。要顯示所有數字,請將有效位數設置爲 零。有效數字的數量不影響解析。

因此,我在測試它:

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

而且我得到以下的輸出:

12,345E3 

根據我剛剛所示的Javadoc的摘錄,我想我應該獲得

12.3E3 

我在做什麼w榮?我瞭解錯了什麼?

預先感謝您所有的澄清:-)

回答

0

http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html莖下面的「解釋」。人們想知道。

的最小和的整數最大位數一起進行解釋:

如果整數位的最大數目大於它們的最小數目和大於1時,它迫使指數爲最大數量的倍數整數位數和最小整數位數被解釋爲1.最常見的用法是生成工程表示法,其中指數是3的倍數,例如「## 0。#### #E0" 。使用這種模式,數字12345格式爲「12.345E3」,123456格式爲「123.456E3」。