双场类型声明作为零(double field type declaration as zero)

2019-10-18 03:34发布

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

double d1 = 0.0;
double d2 = 0d;

据我所知,这两个不仅仅是更好0 ,因为是读码器更明显。

但是0.0 VS 0d差别并不清楚我。

Answer 1:

没有区别。 看看在Java语言规范,部分3.10.2

DecimalFloatingPointLiteral:

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

...

FloatTypeSuffix: one of

 f F d D 

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



Answer 2:

去检查了JLS节浮点文字:

浮点文字的类型为float如果它与ASCII字母F或f为后缀; 否则其类型是双并且它可以任选地用一个ASCII字母d或d后缀。

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



文章来源: double field type declaration as zero