在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)默认的所有数字文字是inttypes的吗?
- 你应该添加
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 。