以下零双变量声明之间有什么显着区别:
0.0
VS0d
double d1 = 0.0;
double d2 = 0d;
我知道这两者都比仅仅更好0
,因为对于代码阅读器来说更明显。
然而, 0.0
VS0d
的区别对我来说并不清楚。
以下零双变量声明之间有什么显着区别:
0.0
VS0d
double d1 = 0.0;
double d2 = 0d;
我知道这两者都比仅仅更好0
,因为对于代码阅读器来说更明显。
然而, 0.0
VS0d
的区别对我来说并不清楚。
没有区别。查看Java 语言规范,第 3.10.2 节
DecimalFloatingPointLiteral:
Digits . Digits
选择ExponentPart
选择FloatTypeSuffix
选择. Digits ExponentPart
选择FloatTypeSuffix
选择Digits ExponentPart FloatTypeSuffix
选择Digits ExponentPart
选择FloatTypeSuffix
...
FloatTypeSuffix: one of
f F d D
两者都是a DecimalFloatingPointLiteral
,第一个类型1,第二个类型4
去查看浮点文字的 JLS 部分:
如果浮点文字以 ASCII 字母 F 或 f 为后缀,则它的类型为 float;否则它的类型是双精度的,并且可以选择以 ASCII 字母 D 或 d 为后缀。
所以如果不加后缀就是双精度