BigDecimal舍入问题

use*_*247 3 java rounding bigdecimal

我希望能够将任何数字四舍五入到整数的四分之一.

例如:

100.33 -> 100.50
100.12 -> 100.25
100.66 -> 100.75
100.99 -> 101.00
100.70 -> 100.75
100.00 -> 100.00
100.25 -> 100.25

等等...

谢谢你们......

pol*_*nts 6

这样做你需要的东西:它乘以4,向上舍入,然后再乘以4.

    String[] tests = {
        "100.33", "100.12", "100.66", "100.99", "100.70", "100.00", "100.25",
    };
    final BigDecimal FOUR = BigDecimal.valueOf(4);
    for (String test : tests) {
        BigDecimal d = new BigDecimal(test);
        d = d.multiply(FOUR).setScale(0, RoundingMode.UP)
             .divide(FOUR, 2, RoundingMode.UNNECESSARY);
        System.out.println(d);
    }
Run Code Online (Sandbox Code Playgroud)