作为一个云计算领域的专家,我可以告诉你,Java BigDecimal 的舍入方法可以通过调用 setScale()
方法来实现。setScale()
方法接受两个参数,第一个参数是要保留的小数位数,第二个参数是舍入模式。以下是一些常用的舍入模式:
BigDecimal.ROUND_UP
:向正无穷大舍入BigDecimal.ROUND_DOWN
:向负无穷大舍入BigDecimal.ROUND_CEILING
:向正无穷大舍入,相当于向上取整BigDecimal.ROUND_FLOOR
:向负无穷大舍入,相当于向下取整BigDecimal.ROUND_HALF_UP
:四舍五入,相当于四舍五入BigDecimal.ROUND_HALF_DOWN
:四舍五入,相当于五舍五入BigDecimal.ROUND_HALF_EVEN
:四舍五入,相当于银行家舍入法BigDecimal.ROUND_UNNECESSARY
:如果需要舍入,则抛出 ArithmeticException
异常以下是一个示例代码,将一个 BigDecimal
对象舍入到最近的间隔:
BigDecimal value = new BigDecimal("3.1415926");
int scale = 2;
BigDecimal roundedValue = value.setScale(scale, BigDecimal.ROUND_HALF_UP);
System.out.println(roundedValue); // 输出 3.14
在这个示例中,我们将 value
舍入到两位小数,并使用 BigDecimal.ROUND_HALF_UP
舍入模式。输出结果为 3.14
。
需要注意的是,setScale()
方法返回一个新的 BigDecimal
对象,而不是修改原始对象。如果需要修改原始对象,可以使用 setScale()
方法的第三个参数,该参数指定舍入的模式。
领取专属 10元无门槛券
手把手带您无忧上云