可使用BigDecimal.setScale()方法的另一种重载形式,指定RoundingMode参数来设置舍入模式。例如:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Test {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal("1.025");
BigDecimal bd2 = bd1.setScale(2, RoundingMode.HALF_UP); // 指定舍入模式为四舍五入
System.out.println(bd2); // 输出1.03
}
}
其中RoundingMode枚举类型提供了多种舍入模式,如:
这样,就可以避免因为默认的ROUND_HALF_EVEN舍入模式而导致的错误结果。