2013-05-14 48 views
1

是什么后面的零双变量声明之间显著差异: 0.0 VS 0d双字段类型声明零

double d1 = 0.0; 
double d2 = 0d; 

我的理解是,这两个不仅仅是0好,因为是读码器更明显。

但是0.0 VS 0d区别不明确。

+1

我不相信是有区别的 – 2013-05-14 12:25:27

回答

5

没有区别。看一看在Java Language Specification, section 3.10.2

DecimalFloatingPointLiteral:

  1. Digits . Digits选择ExponentPart选择FloatTypeSuffix选择
  2. . Digits ExponentPart选择FloatTypeSuffix选择
  3. Digits ExponentPart FloatTypeSuffix选择
  4. Digits ExponentPart选择FloatTypeSuffix

...

FloatTypeSuffix: one of

f F d D 

两者都是一个DecimalFloatingPointLiteral,第一个类型1,第二一种类型4

0

转到检查出JLS部上浮点文字:

甲浮点文字的类型为float如果它与 ASCII字母F或f为后缀;否则它的类型是双倍的,并且它可以有 (可选)后缀为ASCII字母D或d。

所以这是一个双重如果它没有后缀

+0

我编辑后,变量声明为双 – sergionni 2013-05-14 12:26:12