Primitive Data Types - oracle doc表示Java中 long
的范围是-9,223,372,036,854,775,808
到9,223,372,036,854,775,807
。
但是当我在日食中做这样的事情时
long i = 12345678910;
它显示“The literal 12345678910 of type int is out of range
”错误。
有两个问题。
1)如何使用值long
初始化 12345678910
?
2)默认情况下,所有数字文字都是 int
类型吗?
答案 0 :(得分:379)
L
:long i = 12345678910L;
。顺便说一句:它不一定是大写的L,但小写与1
多次混淆:)。
答案 1 :(得分:55)
您需要将L
字符添加到数字的末尾,以使Java将其识别为long。
long i = 12345678910L;
是
请参阅Primitive Data Types,其中“如果整数文字以字母L或l结尾,则为long类型;否则为int类型。”
答案 2 :(得分:38)
您需要在结尾添加大写L
,如此
long i = 12345678910L;
对于3.0f
哪个应该回答你的两个问题
答案 3 :(得分:15)
要初始化很长时间,您需要追加" L"到最后。
它可以是大写或小写。
默认情况下,所有数值均为int
。即使您使用任何整数执行byte
的任何操作,byte
也会首先提升为int
,然后执行任何操作。
试试这个
byte a = 1; // declare a byte
a = a*2; // you will get error here
您收到错误,因为2
默认为int
。
因此,您试图将byte
与int
相乘。
因此,结果被转换为int
,而无法将其分配回byte
。