Java 为什么一个长字母写的是L
如果我想保存一个长变量,为什么我必须在值的末尾写一个Java 为什么一个长字母写的是L,java,variables,types,declaration,Java,Variables,Types,Declaration,如果我想保存一个长变量,为什么我必须在值的末尾写一个L或L 例如: 9_223_372 长v=9_223_372L; 但如果我保存它: long v=9_223_372; 这仍然是一个很长的变量。那我为什么要写L或L呢?intliteral 如果您不编写它,Java将把它创建为int,并从那里转换为long: long number = 10; // Is the same as long number = (long) 10; // i.e. int asInt = 10; long nu
L
或L
例如:
9_223_372
长v=9_223_372L;
但如果我保存它:
long v=9_223_372;
这仍然是一个很长的变量。那我为什么要写L或L呢?int
literal
如果您不编写它,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;
注 同样的方法也适用于浮点数,当您希望使用
浮点数而不是双精度
时,可以添加F
(或F
)。从技术上讲,您也可以为double
添加D
或D
,但默认情况下,浮点数文本已经是double
,因此不需要:
float asFloat = 0.5F;
double asDouble = 0.5D;
double alreadyDoubleByDefault = 0.5;
顺便说一下,请不要使用l
(小l
),它很容易与1
(一)混淆。long v=9_223_372_036_854_775
你试过运行这个吗?后缀L
是大于int
范围的long
数字所必需的。另一方面:Is更倾向于使用L
而不是L
,因为对于大多数字体,L
很容易被误读为1
。对于int范围之外的长数字,99999999999999 L,以及对于同时具有int和long的上下文-seldom@DorianGray,出于同样的原因,在使用双打时,您还会看到d
优于d
。