我正在尝试将数字一万亿存储在一个变量中。然而,即使变量类型很长,eclipse 也会继续磨损它超出其范围。
这是我的代码:
long temp = 1;
if(...){
temp = 1000000000000;
}
如果有人对为什么会发生这种情况有任何见解,我将不胜感激。
尝试
temp = 1000000000000L;
java中的1000000000000被识别为int,最后加L使其变长
Java 在数学库中有一个 BigInteger 类型。
http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigInteger.html
例子:
import java.math.BigInteger;
public class BigIntegerExample
{
public static void main(String[] args)
{
BigInteger bigInteger1 = new BigInteger ("123456789");
BigInteger bigInteger2 = new BigInteger ("112334");
BigInteger bigIntResult =
bigInteger1.multiply(bigInteger2);
System.out.println("Result is ==> " + bigIntResult);
}
}
Java中的anint
是有符号的32bit,所以最大的int值是2,147,483,647。使用 long 来表示更大的数字,例如 1 万亿,是一个不错的选择。
long temp = 1000000000000L;
要了解有关 Java 的原始数据类型及其限制的更多信息,我强烈建议您参考这篇关于原始数据类型的 Oracle 文章。