如何将BigDecimal值舍入到最近的hundreths

时间:2015-05-11 21:15:41

标签: java bigdecimal

示例:

public class Round {

    private static final BigDecimal TWELVE = new BigDecimal("12");
    public static void main(String[] args) {

        BigDecimal annualAmt = new BigDecimal("55867.59");
        BigDecimal monthlyAmt = null;

        monthlyAmt = annualAmt.divide(TWELVE, 0, RoundingMode.HALF_UP);
        System.out.println(monthlyAmt);
    }
}

上面的程序输出是4656.我想将它舍入到最接近的百分之4700。

同样4235 - > 4200

2 个答案:

答案 0 :(得分:9)

要将给定BigDecimal舍入到最接近的百位,请使用monthlyAmt = monthlyAmt.setScale(-2, RoundingMode.HALF_EVEN)(或替换相应的舍入模式)。

答案 1 :(得分:-1)

您可以尝试使用此舍入公式进行整数计算:

    res = ((number + factor - 1) / factor) * factor;