2013-07-11 56 views
1

對於所有在家玩的人,我正在閱讀Walter Savitch的Absolute Java 5th Edition(第2章第66頁)。Printf E-notation

表達

double d = 12345.123456789; 
System.out.printf("START%12.5e END %n", d); 

答案

START 1.23451e+04END 

我明白這個的printf方法的例如參數的基本原則,我知道了「%」表示的啓動參數。 '12'是間距的數字,'.5'是小數點移動的次數....我看到小數點已經向左移動了4個位置......有人可以解釋電子記法的原理。還有這個表達式是如何得出這個答案的=)。

至於電子記號去它的意思是科學記數法;

因此,如5.89e-4將意味着0.000589(如果不移動小數點右移,如果減去左移小數點)。

+0

格式化字符串的完整文檔隱藏在['java.util.Formatter'](http://docs.oracle.com/javase/7/docs/api/java/util/Formatter)的javaDoc中。 HTML)。對於你的最後一部分問題:) –

回答

2

「e」是「指數」。

在格式表達式:

12是所顯示的數字呈現的(最小)寬度。 5是精度的小數位數。

格式本身是科學記數法。該數字總是標準化爲1到10之間的數字,並且打印表達式中的「+04」是數字部分乘以10的冪。