小编典典

Java 600851475143的“整数数太大”错误消息

java

public class Three {
    public static void main(String[] args) {
        Three obj = new Three();
        obj.function(600851475143);
    }

    private Long function(long  i) {
        Stack<Long> stack = new Stack<Long>();

        for (long j = 2; j <= i; j++) {
            if (i % j == 0) {
                stack.push(j);
            }
        }
        return stack.pop();
    }
}

当上面的代码运行时,它会在line上产生错误obj.function(600851475143);。为什么?


阅读 534

收藏
2020-03-16

共1个答案

小编典典

600851475143不能表示为32位整数(类型int)。可以将其表示为64位整数(类型long)。Java中的长文字以“ L”结尾:600851475143L

2020-03-16