在Java中初始化一个long

时间:2011-07-26 17:28:11

标签: java long-integer

Primitive Data Types - oracle doc表示Java中 long 的范围是-9,223,372,036,854,775,8089,223,372,036,854,775,807。 但是当我在日食中做这样的事情时

long i = 12345678910;

它显示“The literal 12345678910 of type int is out of range”错误。

有两个问题。

1)如何使用值long初始化 12345678910

2)默认情况下,所有数字文字都是 int 类型吗?

4 个答案:

答案 0 :(得分:379)

  1. 您应该添加Llong i = 12345678910L;
  2. 顺便说一句:它不一定是大写的L,但小写与1多次混淆:)。

答案 1 :(得分:55)

  1. 您需要将L字符添加到数字的末尾,以使Java将其识别为long。

    long i = 12345678910L;
    
  2. 请参阅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
因此,您试图将byteint相乘。 因此,结果被转换为int,而无法将其分配回byte