如果要保存一个长变量,为什么必须在值的末尾写一个L
或l
?
例如:
9_223_372
long v = 9_223_372L;
但是,如果我保存它:
long v = 9_223_372;
它仍然是一个长变量。那么为什么我必须写L或l?
答案 0 :(得分:1)
int
文字如果您不编写它,Java会将其创建为int
,然后将其强制转换为long
:
long number = 10;
// Is the same as
long number = (long) 10;
// i.e.
int asInt = 10;
long number = (long) asInt;
只要您输入的数字是int
,此方法就可以使用,如果不是,则会失败,例如,数字很大:
// Fails, "integer number too large"
long number = 10_000_000_000_000_000;
使用L
(或l
),您告诉Java这个文字首先是long
,而不是int
。这也摆脱了不必要的转换:
long number = 10_000_000_000_000_000L;
对于浮点数也是如此,当您想要float
而不是double
时,可以添加F
(或f
)。从技术上讲,您也可以为D
添加d
或double
,但是默认情况下,浮点数字常量已经为double
,因此不需要:
float asFloat = 0.5F;
double asDouble = 0.5D;
double alreadyDoubleByDefault = 0.5;
顺便说一句,请不要使用l
(小的L
),它很容易与1
(一个)混淆。