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