Java 大长数字除以圆

Java 大长数字除以圆,java,android,Java,Android,我对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()

我对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;
}
投双倍

days = (double)current / (double)MILISECONDS_IN_DAY;
投双倍

days = (double)current / (double)MILISECONDS_IN_DAY;

它是四舍五入的,类似于

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;


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

它是四舍五入的,类似于

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;


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

实际上结果是四舍五入的,有几种四舍五入模式,请参见,在您的示例中,您得到的是完整天数。四舍五入到我们可以使用的最接近的长度

long days = Math.round(current / 8640000.0);

实际上结果是四舍五入的,有几种四舍五入模式,请看,在您的例子中,您得到的是完整天数。四舍五入到我们可以使用的最接近的长度

long days = Math.round(current / 8640000.0);

你也可能对这门课感兴趣;看起来你可能正在重新发明轮子。:)你也可能对这门课感兴趣;看起来你可能正在重新发明轮子。:)如果
days=2,这是可以的如果
days=2,这是可以的