我在使用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;
}
最佳答案
向下取整,类似于doing
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
关于java - 大长数字除以舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15265696/