[英]Floating point literal, floating literal, double Literal
Java中的'浮點字面值'和'浮動字面值'是一樣的嗎?
另外,Java中有什么叫做“雙字面”嗎?
“浮點文字”是指任何浮點類型的文字。 float
和double
都是浮點類型。
我之前從未遇到過“浮動文字”這個術語,但我認為其意圖與“浮點文字”相同。 你應該確保要求澄清,因為如果作者打算說“float literal”,那么特別是float
類型的文字,而不僅僅是任何浮點類型。
對於Java中特定類型的浮點文字,一般形式#.#
所有文字都是double
,除非你將f
或F
(相同的差異)附加到文字以強制它float
。
查看Oracle的原始數據類型教程頁面。 我已經復制了下面標題為“浮點字面值”的子節。
浮點文字
如果浮點字面值以字母F或f結尾,則浮點字面值為float類型; 否則它的類型是雙倍的,它可以選擇以字母D或d結尾。
浮點類型(浮點數和雙精度)也可以用E或e(科學計數法),F或f(32位浮點數字)和D或d(64位雙字面值)表示;這是默認值和約定被省略)。
double d1 = 123.4; // same value as d1, but in scientific notation double d2 = 1.234e2; float f1 = 123.4f;
正如@Bubletan在評論中提到的那樣,如果你真的很好奇,你可以查看浮點文字的實際Java規范: §3.10.2。 浮點文字
float
文字的示例:1e1f 2.f .3f 0f 3.14f 6.022137e+23f
double
文字的例子:1e1 2. .3 0.0 3.14 1e-9d 1e137
Java有float
文字標記有f
后綴(例如,2.5f)和double
文字,它們不需要后綴(例如2.5)。
當您嘗試將這些文字分配給變量時,可以證明兩者之間的差異:
double dl = 2.5; // passes compilation
float fl1 = 2.5; // error - "Type mismatch: cannot convert from double to float"
float fl2 = 2.5f; // passes compilation
兩者都可以被認為是浮點文字,因為double
和float
都是浮點類型。
如果以F
或f
結尾,“浮點字面量”將為浮點類型; 否則它是雙倍的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.