Java BigDecimal:四舍五入到最接近的整数

我需要以下结果

100.12 -> 100.00

100.44 -> 100.00

100.50 -> 101.00

100.75 -> 101.00

.round()还是.setScale()?我该怎么办?

回答:

您可以使用setScale()将小数位数减少为零。假设value拥有要取整的值:

BigDecimal scaled = value.setScale(0, RoundingMode.HALF_UP);

System.out.println(value + " -> " + scaled);

使用起来round()有点麻烦,因为它要求您指定要保留的位数。在您的示例中,该值为3,但这不适用于所有值:

BigDecimal rounded = value.round(new MathContext(3, RoundingMode.HALF_UP));

System.out.println(value + " -> " + rounded);

(请注意,BigDecimal对象是不可改变的,都setScaleround会返回一个新的对象。)

以上是 Java BigDecimal:四舍五入到最接近的整数 的全部内容, 来源链接: utcz.com/qa/429181.html

回到顶部