将BigDecimal舍入为最接近的整数值

时间:2012-03-26 17:58:23

标签: java bigdecimal

我如何正确将BigDecimal四舍五入到最接近的整数值?

例如

1.2 --> 1

1.5 --> 2

1.6 --> 2.

我试过

BigDecimal val = new BigDecimal(1.5);
System.out.println(val.setScale(0, RoundingMode.HALF_UP))

但这仍然给了我1.不是预期的2。

有没有人碰巧知道如何正确地做到这一点?

由于

1 个答案:

答案 0 :(得分:4)

    BigDecimal val = new BigDecimal(1.2);
    System.out.println(val.setScale(0, RoundingMode.HALF_UP));
    val = new BigDecimal(1.5);
    System.out.println(val.setScale(0, RoundingMode.HALF_UP));
    val = new BigDecimal(1.6);
    System.out.println(val.setScale(0, RoundingMode.HALF_UP));

结果:

1

2

2

我看不出问题出在哪里