bigdecimal的加减乘除

在Java中,BigDecimal类提供了用于精确计算的方法,包括加法、减法、乘法和除法。以下是使用BigDecimal进行这些基本运算的示例:

加法

BigDecimal a = new BigDecimal("1");
BigDecimal b = new BigDecimal("3");
System.out.println(a.add(b)); // 输出 4.0

减法

BigDecimal a = new BigDecimal("1");
BigDecimal b = new BigDecimal("3");
System.out.println(a.subtract(b)); // 输出 -2.0

乘法

BigDecimal a = new BigDecimal("2");
BigDecimal b = new BigDecimal("3");
System.out.println(a.multiply(b)); // 输出 6.0

除法

BigDecimal a = new BigDecimal("2");
BigDecimal b = new BigDecimal("3");
System.out.println(a.divide(b)); // 输出 0.6666666666666666

绝对值

BigDecimal a = new BigDecimal("-1000000");
System.out.println(a.abs()); // 输出 1000000.0

舍入模式

在进行除法运算时,可以指定舍入模式,以控制结果的小数位数和舍入方式。以下是几种常见的舍入模式:

  • ROUND_UP

  • ROUND_DOWN

  • ROUND_CEILING

  • ROUND_FLOOR

  • ROUND_HALF_UP

  • ROUND_HALF_DOWN

  • ROUND_HALF_EVEN

  • ROUND_UNNECESSARY

例如,指定舍入模式为ROUND_HALF_UP

BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("3");
BigDecimal result = a.divide(b, 2, RoundingMode.HALF_UP);
System.out.println(result); // 输出 3.3

使用BigDecimal进行精确计算时,需要注意其构造函数可以接受两种类型的参数:数字值或字符串。选择使用哪种方式取决于具体的使用场景和个人偏好。

Top