BigDecimal:计算百分数时保留两位小数

郎家岭伯爵 2023年07月10日 515次浏览

背景

使用 BigDecimal 计算百分数时保留两位小数。

实现

代码:

@GetMapping("/t6")
public void test6(){
    BigDecimal num1 = new BigDecimal("2");
    BigDecimal num2 = new BigDecimal("3");
    // 计算num1除以num2的结果,保留四位小数,四舍五入
    BigDecimal divide = num1.divide(num2, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
    log.info(divide + "%");
}

输出:

66.67%

RoundingMode.HALF_UP 是 Java 中的一个枚举值,用于指定四舍五入的规则。具体来说,RoundingMode.HALF_UP 表示四舍五入时,当需要舍弃的小数部分大于等于 0.5 时,向上舍入;小于 0.5 时,向下舍入。

例如:

  • 对于数字 3.6,使用 RoundingMode.HALF_UP 进行四舍五入,结果为4。
  • 对于数字 3.4,使用 RoundingMode.HALF_UP 进行四舍五入,结果为3。

在代码中的 BigDecimal 计算中,通过使用 RoundingMode.HALF_UP,可以保证在进行四舍五入时,结果会按照标准的四舍五入规则进行舍入,从而获得精确的结果。

总结

Java 语言使用 BigDecimal 实现计算百分数时保留两位小数。