有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用圆除法的java大长数值

我对java有问题,然后我想除掉大的长型数字,例如,如果我除掉165600139/86400000=1.9,但我的方法返回1而不舍入:/

public static long calcDaysBefore(Date date) {
    int MILISECONDS_IN_DAY = 24 * 60 * 60 * 1000;
    long days = 0;
    if (date != null) {
        long current = getCurrentDate().getTime() - date.getTime();
        days = current / MILISECONDS_IN_DAY;
    }
    return days;
}

共 (2) 个答案

  1. # 1 楼答案

    它是四舍五入的,类似于

    days = Math.floor((double) current / MILISECONDS_IN_DAY);
    

    如果你想凑到一半,你可以写

    days = (current + MILISECONDS_IN_DAY/2) / MILISECONDS_IN_DAY;
    

    使用浮点,你可以使用下面的方法,这要慢得多

    days = Math.round((double) current / MILISECONDS_IN_DAY);
    

    如果你想集中注意力,你可以这样做

    days = (current + MILISECONDS_IN_DAY-1) / MILISECONDS_IN_DAY;
    

    或者

    days = Math.ceil((double) current / MILISECONDS_IN_DAY);
    

    顺便说一句,毫秒有两个l