使用BigDecimal类的方法进行数学计算
注意两点:
- 构造方法传参使用字符串,因为直接传递小数的话会被当作Double型浮点数处理,造成精度误差。
- 使用除法时,除了传入被除数外还有两个参数:保留小数点位数以及近似规则(四舍五入、向上取整、向下取整等等)。
代码如下:
BigDecimal a = new BigDecimal("12.3");//这里要传入字符串,不能传入小数
BigDecimal b = new BigDecimal("45.6");
System.out.println("a+b="+a.add(b));
System.out.println("a-b="+a.subtract(b));
System.out.println("a*b="+a.multiply(b));
System.out.println("a/b="+a.divide(b,2,BigDecimal.ROUND_HALF_UP));//三个参数分别表示被除数、保留小数点位数和近似规则
除法方法的详细说明如图: