BigDecimal.setScale(int newScale, int roundingMode)
newScale: 保留newScale位小数
roundingMode: 舍去规则(0 <= roundingMode <= 7)
一、BigDecimal.ROUND_DOWN
BigDecimal num = new BigDecimal("3.16159");
// 直接舍去多余的位数,不进行四舍五入
System.out.println(num.setScale(1, BigDecimal.ROUND_DOWN)); // 3.1
System.out.println(num.setScale(2, BigDecimal.ROUND_DOWN)); // 3.16
二、BigDecimal.ROUND_UP
BigDecimal num = new BigDecimal("3.161590");
// 进位处理,不进行四舍五入(精度后的位数是0不进位)
System.out.println(num.setScale(1, BigDecimal.ROUND_UP)); // 3.2
System.out.println(num.setScale(2, BigDecimal.ROUND_UP)); // 3.17
System.out.println(num.setScale(5, BigDecimal.ROUND_UP)); // 3.16159
三、BigDecimal.ROUND_CEILING