我想申报一个大常数.但java显示错误,我的常量对于int来说太大了.但我想要长久不变.该怎么办?
public static final long MAXMONEY = 1000000000000000000;
Run Code Online (Sandbox Code Playgroud)
把它L放在最后.
public static final long MAXMONEY = 1000000000000000000L;
Run Code Online (Sandbox Code Playgroud)
从JLS第3.10.1节:
如果整数文字后缀为ASCII字母L或l(ell),则整数文字的长度为long; 否则它是int类型.
是的,这个值在a的范围内long.
有语法的常数值的一个可爱的小总结在这里.
要编写长文字,您需要L在数字的末尾添加一个.尝试
public static final long MAXMONEY = 1000000000000000000L;
Run Code Online (Sandbox Code Playgroud)
我没有测试,如果这个数字足够长的话.
默认情况下,所有非浮点文字都被视为整数,整数的最大值是2147483647,因此1000000000000000000这里不正确(它超出整数范围).
如果你想创建long文字,你需要通过添加l或L最后指定它
1000000000000000000l
1000000000000000000L
Run Code Online (Sandbox Code Playgroud)
首选方法是添加L因为l看起来像1并导致混淆.
但是如果你真的想要操作大数字,可以考虑使用BinInteger或BigDecimal类来避免整数溢出.您可以使用实例化它们
new BigInteger("1000000000000000000");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
531 次 |
| 最近记录: |