bigdecimal 取整数

在 Java 中,如果你想要对一个 BigDecimal 取整数部分,有两种方式:

  • 使用 BigDecimal 的 intValue() 或者 longValue() 方法,将 BigDecimal 对象转换为 int 或者 long 类型,这会截取 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 对象,因此需要将其赋值给一个新的变量。

  •