我想宣布一个很大的常量。但是java显示一个错误,我的常量对于int来说太大了。但我想要长久不变。该怎么办?Java常量超出范围
public static final long MAXMONEY = 1000000000000000000;
我想宣布一个很大的常量。但是java显示一个错误,我的常量对于int来说太大了。但我想要长久不变。该怎么办?Java常量超出范围
public static final long MAXMONEY = 1000000000000000000;
为了编写长文字,您需要在编号的末尾添加一个L
。尝试
public static final long MAXMONEY = 1000000000000000000L;
我没有测试,如果这个数字足够小足够长。
它在范围内。还有一个零,它不会。 –
默认情况下,所有非浮点文字都视为整数,整数的最大值为2147483647
,因此1000000000000000000
在此处不正确(超出整数范围)。
如果你想创建long
字面你需要像
1000000000000000000l
1000000000000000000L
首选方式加入l
或L
末指定它是添加L
因为l
看起来像1
,造成混乱。
但是,如果你真的打算在大数字上操作,可考虑使用BinInteger
或BigDecimal
类来避免integer overflow。你可以实例化它们
new BigInteger("1000000000000000000");
如果你需要非常大的数字,你可以为一个数字定义几个变量。
[Initialize a long in Java](http://stackoverflow.com/questions/6834037/initialize-a-long-in-java) –