Java中的Math.round()方法

时间:2010-09-30 04:59:13

标签: java rounding

Math.round(4816.5)正在返回4817。

我想在小数为> 5而不是> = 5时才向上舍入。所以在这里,我需要结果为4816。

请给我解决方案。

3 个答案:

答案 0 :(得分:6)

Math.round(n)(long) Math.floor(n + 0.5)基本相同,因此您可以稍微修改该算法:

long rounded = (long) Math.ceil(n - 0.5);

答案 1 :(得分:5)

使用双重否定:

-Math.round(-n)

答案 2 :(得分:5)

使用 HALF_DOWN 的RoundingMode,让Java负责其余的工作:

        BigDecimal value = new BigDecimal(4816.5);
        value = value.setScale(0, RoundingMode.HALF_DOWN);
        long result = value.longValue();
        System.out.println(result);