繁体   English   中英

在长型变量中存储12位整数会产生编译错误,为什么? [重复]

[英]Storing a 12-digit integer in a long variable gives a compiling error, why? [duplicate]

这个问题已经在这里有了答案:

我正在尝试从Euler项目中解决一个问题,它涉及对大量对象进行计算。 我知道使用long来分配大数字,但是在编译时会出现以下错误:

错误:整数太大:600851475143长数字= 600851475143;

这是我的代码:

public static void main(String[] args) {
  long bigDiv, div = 0;
  long num = 600851475143;
  bigDiv = 1;
  for(long i = 2; i < num; i++)  {
     if(num % i == 0)  {
        for(long j = 2; j < i; j++) {
           if(i % j == 0)
              div++;
        }
        if(div == 0)
           bigDiv = i;
     }
  }
  System.out.println("Biggest prime divisor = " + bigDiv);
}

如果不添加L num其解释为最大为2 31 -1的整数。

long num = 600851475143L;

l也可以使用,但看起来太像1所以建议使用前者

有关更多信息,请参见JLS§3.10.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM