1

以下零双变量声明之间有什么显着区别: 0.0VS0d

double d1 = 0.0;
double d2 = 0d;

我知道这两者都比仅仅更好0,因为对于代码阅读器来说更明显。

然而, 0.0VS0d的区别对我来说并不清楚。

4

2 回答 2

5

没有区别。查看Java 语言规范,第 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

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

于 2013-05-14T12:37:22.923 回答
0

去查看浮点文字的 JLS 部分:

如果浮点文字以 ASCII 字母 F 或 f 为后缀,则它的类型为 float;否则它的类型是双精度的,并且可以选择以 ASCII 字母 D 或 d 为后缀。

所以如果不加后缀就是双精度

于 2013-05-14T12:24:41.593 回答