2

我正在尝试将数字一万亿存储在一个变量中。然而,即使变量类型很长,eclipse 也会继续磨损它超出其范围。

这是我的代码:

long temp = 1;

if(...){
    temp = 1000000000000;
}

如果有人对为什么会发生这种情况有任何见解,我将不胜感激。

4

3 回答 3

17

尝试

temp = 1000000000000L;

java中的1000000000000被识别为int,最后加L使其变长

于 2012-04-17T23:53:12.100 回答
0

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);
  }
}
于 2012-04-17T23:55:17.917 回答
0

Java中的anint是有符号的32bit,所以最大的int值是2,147,483,647。使用 long 来表示更大的数字,例如 1 万亿,是一个不错的选择。

long temp = 1000000000000L;

要了解有关 Java 的原始数据类型及其限制的更多信息,我强烈建议您参考这篇关于原始数据类型的 Oracle 文章。

于 2012-04-18T00:13:41.897 回答