相关疑难解决方法(0)

600851475143的"整数过大"错误消息

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

java integer

76
推荐指数
6
解决办法
12万
查看次数

日期添加计算中的Java"整数过大"

我已经为我的问题取出了不相关的代码,并留下了与我的问题相关的内容.它表明整数太大了.我已将当前时间转换为毫秒,我试图以毫秒为单位添加一个月,两周和一周来实现"过期日期".如果有人知道如何使用Long而不是int?我很困惑,因为我的日期不是作为一个整数被宣布?

它表示'dateExpired = dateExpired + 2628000000;'的错误.

public class VIP implements Serializable {
    private Date dateExpired;

    public VIP(Date dateExpired) {
        this.dateExpired = new Date(Calendar.getInstance().getTimeInMillis());
    }


    public Date getDateExpired() {
        return dateExpired;
    }

    public void setDateExpired(String ticketType) {
       if (ticketType.equals("Gold")) {
            dateExpired =  dateExpired + 2628000000;
        } else if (ticketType.equals("Silver")) {
            dateExpired = dateExpired + 1209600000;
        } else {
            dateExpired = dateExpired + 604800000;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java integer date

0
推荐指数
1
解决办法
2017
查看次数

标签 统计

integer ×2

java ×2

date ×1