我想声明一个很大的常数。但是Java显示出一个错误,我的常数对于INT来说太大了。但是我想要一个漫长的常数。该怎么办?
public static final long MAXMONEY = 1000000000000000000;
将L
放在其末端。
public static final long MAXMONEY = 1000000000000000000L;
摘自JLS第3.10.1节:
如果整数用ASCII后缀 字母l或l(ell);否则它是int类型
是的,此值在long
的范围内。
这里有一个不错的语法摘要,用于恒定值。
为了写一个长的文字,您需要将L
添加到数字末尾。尝试
public static final long MAXMONEY = 1000000000000000000L;
我没有测试,如果这个数字足够长。
默认情况下,所有非浮点文字都被视为整数,并且整数的最大值为 2147483647
,因此1000000000000000000
在这里不正确(它不超出整数范围)。
如果要创建long
字面的字面形式,则需要在末尾添加l
或L
来指定它,例如
1000000000000000000l
1000000000000000000L
首选方法是添加L
,因为l
看起来像1
并引起混乱。
但是,如果您确实要在大数字上操作,请考虑使用BinInteger
或BigDecimal
类,以避免整数溢出。您可以用
new BigInteger("1000000000000000000");
如果您需要很大的数字,则可以为一个数字定义几个变量。