在 Java 中,如果你想要对一个 BigDecimal 取整数部分,有两种方式:
BigDecimal bd = new BigDecimal("123.456");
int i = bd.intValue(); // i = 123
long l = bd.longValue(); // l = 123
使用 BigDecimal 的 setScale() 方法,将小数部分舍去。
BigDecimal bd = new BigDecimal("123.456");
BigDecimal bd2 = bd.setScale(0, RoundingMode.DOWN); // bd2 = 123
其中 setScale() 方法接受两个参数,第一个参数是要保留的小数位数,第二个参数是取整的方式。上面的例子中,第一个参数是 0,表示不保留小数位,第二个参数 RoundingMode.DOWN 表示直接舍去小数部分,不进行四舍五入。
需要注意的是,BigDecimal 的 setScale() 方法并不会改变原来的 BigDecimal 对象,而是返回一个新的 BigDecimal 对象,因此需要将其赋值给一个新的变量。