如果我想定义双文字,我写道:
(1) double a = 12.0;
但是当我在小数点后面没有东西时定义double,例如
(2) double b=12;
使用
更容易接受(3) double c=12d;
代替?
据我所知(1)是最好的方法,如果我能问你下一个更好的方法来宣布双重文字,这将是你的选择和原因?
答案 0 :(得分:3)
来自Java语言规范:
如果浮点字面值以字母F或f结尾,则浮点字面值为float类型;否则它的类型是双倍的,它可以选择以字母D或d结尾。
也可以表示浮点类型(float和double) 使用E或e(用于科学记数法),F或f(32位浮点字面值) 和D或d(64位双字面值;这是默认值,按惯例省略)。
double d1 = 123.4;
// same value as d1, but in scientific notation
double d2 = 1.234e2;
float f1 = 123.4f;
因此添加D
或d
与您已经知道的省略相同,但我会说遵循约定更好并省略它。
答案 1 :(得分:1)
编译糖。我最多使用选项2,但如果我想强制执行计算结果,我使用选项3.
int intval = ...
double intdev = 1 / intval;
double doubledev = 1d / intval;
答案 2 :(得分:1)
这并不重要。没有任何区别。
默认类型为double
。因此,除非你放置f
(如果你想将值视为浮点数),默认情况下该值被视为double。
它与整数相同。默认类型为int
。如果您想要long
,则必须添加l
,否则所有内容都为int
。