Java BigDecimal:四舍五入到最接近的整数
我需要以下结果
100.12 -> 100.00100.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
对象是不可改变的,都setScale
和round
会返回一个新的对象。)
以上是 Java BigDecimal:四舍五入到最接近的整数 的全部内容, 来源链接: utcz.com/qa/429181.html