簡體   English   中英

浮點文字,浮字面,雙字面

[英]Floating point literal, floating literal, double Literal

Java中的'浮點字面值'和'浮動字面值'是一樣的嗎?

另外,Java中有什么叫做“雙字面”嗎?

“浮點文字”是指任何浮點類型的文字。 floatdouble都是浮點類型。

我之前從未遇到過“浮動文字”這個術語,但我認為其意圖與“浮點文字”相同。 你應該確保要求澄清,因為如果作者打算說“float literal”,那么特別是float類型的文字,而不僅僅是任何浮點類型。

對於Java中特定類型的浮點文字,一般形式#.#所有文字都是double ,除非你將fF (相同的差異)附加到文字以強制它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

兩者都可以被認為是浮點文字,因為doublefloat都是浮點類型。

如果以Ff結尾,“浮點字面量”將為浮點類型; 否則它是雙倍的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM