在Java中初始化一长串
原始数据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
types的吗?
- 你应该添加
L
:long i = 12345678910L;
。 - 是。
顺便说一句:它不一定是一个大写的L,但小写与1
多次混淆:)。
-
您需要将
L
字符添加到数字的末尾,以使Java将其识别为长整型。long i = 12345678910L;
-
是。
请参阅原语数据types ,其中指出:“如果整数字面量以字母L或l结尾,则为long型;否则为int型。
你需要像这样在最后加上大写字母L
long i = 12345678910L;
对于3.0f
float也是如此
哪个应该回答你的两个问题
要初始化很长时间,您需要在末尾添加“L”。
它可以是大写或小写。
所有的数值都是默认的int
。 即使你用任何整数对byte
进行任何操作, byte
也首先被提升为int
,然后执行任何操作。
尝试这个
byte a = 1; // declare a byte a = a*2; // you will get error here
你得到错误,因为2
是默认的int
。
因此,你正试图乘以byte
与int
。 因此结果得到了typecasted到int
不能被分配回byte
。