浮点文字,浮字面,双字面

时间:2016-12-22 18:35:33

标签: java

Java中的'浮点字面值'和'浮动字面值'是一样的吗?

此外,Java中有什么称为“双重文字”吗?

3 个答案:

答案 0 :(得分:11)

“浮点文字”是指任何浮点类型的文字。 floatdouble都是浮点类型。

我之前从未遇到过“浮动文字”一词​​,但我认为其意图与“浮点文字”相同。 你应该确保要求澄清,因为如果作者打算说“浮动文字”,那么特别是float类型的文字,而不仅仅是任何浮动 - 点类型一般。

对于Java中特定类型的浮点文字,一般形式#.#的所有文字都是double,除非你附加fF(同一个)区别于文字强制它为float

请查看Oracle的Primitive Data Types上的教程页面。我已经复制了下面标题为“浮点文字”的小节。

  

浮点文字

     

浮点字面值的类型为float,如果它以字母F结尾   或f;否则它的类型是双倍的,它可以选择以   字母D或d。

     

也可以表示浮点类型(float和double)   使用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. Floating-Point Literals

  

float文字的示例:

1e1f    2.f    .3f    0f    3.14f    6.022137e+23f
     

double文字的示例:

1e1    2.    .3    0.0    3.14    1e-9d    1e137

答案 1 :(得分:3)

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都是浮点类型。

答案 2 :(得分:1)

"浮点文字"如果以Ff结尾,则为浮点类型;否则它是双重的