我想宣佈一個很大的常量。但是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) –