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