java - 大长数字除以舍入

标签 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().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/

相关文章:

java - 在 Java 中运行程序时输出未完全显示

android - Maven 构建期间的 Alfresco Android SDK 错误

Android sqlite - 如何管理 where 子句中的整数值

java - 关闭 Jsoup 连接

java - java 中的 HTTP POST 抛出错误 - 找不到合适的 HttpMessageConverter 来将请求正文读取到类型类的对象中

java - Maven 构建错误 : mvn. bat 无法识别

java - 如何刷新HBase中的表

java - 为什么我的 DataPoints 方法被多次调用?

java - 如何取回服务器对在 Android Studio (Java) 中调用请求的方法的响应

android - ActionBar 中的全角微调器