我正在创建一个银行帐户。它有一个'accnum'作为变量。它具有整数值,大小为12个字节。 假设银行账号为180020131111.你如何初始化为变量?
public class number{
public static void main(String[] args){
private long x=180020131111; // is not working..
System.out.println(x);
}
}
答案 0 :(得分:5)
180020131111
是一个整数文字,不能容纳int
类型。您应该在末尾添加L
以使其long
为文字。
private long x = 180020131111L;
好吧,我宁愿将帐号存储为字符串。我认为没有必要将它存储为数字,因为你只是要显示它。我的意思是,如果你打算对账号做一些算术运算,那真的很奇怪。
答案 1 :(得分:1)
默认情况下,在java中,Integral Literals被视为32位int
而不是64位long
。
使用此
private long x=180020131111L;
最后的字符l
ot L
会使整数文字变长
答案 2 :(得分:1)
最大的Java原语整数类型是long
,它是64位(8字节)有符号类型。如果要表示大于2 63 - 1 == 9,223,372,036,854,775,807的数字,则需要使用BigInteger
或BigDecimal
。
这句话的问题......
private long x=180020131111;
...是您正在使用int
文字的语法。 long
字面值需要l
或L
后缀。 (FWIW - 此数字不需要9个字节来表示......)