BigDecimal
作用:用于精确的计算
一.构造方法
方法名 说明
BigDecimal(double val) 参数为double
BigDecimal(String val) 参数为String
- 成员方法
public BigDecimal add(另一个BigDecimal对象) 加法
public BigDecimal subtract (另一个BigDecimal对象) 减法
public BigDecimal multiply (另一个BigDecimal对象) 乘法
public BigDecimal divide (另一个BigDecimal对象) 除法
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) 除法
TEST 1:
public class TestBigDecimal02 {
public static void main(String[] args) {
BigDecimal b1=new BigDecimal("0.1");
BigDecimal b2 = new BigDecimal("0.2");
// public BigDecimal add(另一个BigDecimal对象) 加法
BigDecimal add = b1.add(b2);
System.out.println("和为"+add);
// public BigDecimal subtract (另一个BigDecimal对象) 减法
BigDecimal subtract = b1.subtract(b2);
System.out.println("差为"+subtract);
// public BigDecimal multiply (另一个BigDecimal对象) 乘法
BigDecimal multiply = b1.multiply(b2);
System.out.println("乘积为"+multiply);
// public BigDecimal divide (另一个BigDecimal对象) 除法
BigDecimal divide = b1.divide(b2);
System.out.println("商为"+divide);
}
}
TEST 2:
public class TestBigDecimal03 {
public static void main(String[] args) {
BigDecimal b1=new BigDecimal("10.0");
BigDecimal b2=new BigDecimal("3.0");
// public BigDecimal multiply (另一个BigDecimal对象) 乘法
//BigDecimal divede= new BigDecimal(参与运算的对象,小数点后精确到第几位,舍入模式)
//参数一;表示参与运算的对象
//参数二:表示结果小数点后精确到第几位
//参数三:舍入模式 :
//BigDecimal.Round_up 进一法
//BidDecimal.Round_FLOOP 去尾法
//BigDecimal.ROUND_HALF_up 四舍五入法
BigDecimal divide = b1.divide(b2,2,BigDecimal.ROUND_HALF_UP);
BigDecimal divide2 = b1.divide(b2,2,BigDecimal.ROUND_HALF_DOWN);
BigDecimal divide3 = b1.divide(b2,2,BigDecimal.ROUND_FLOOR);
System.out.println(divide);
System.out.println(divide2);
System.out.println(divide3);
}
}
- 结论
1, BigDecimal是用来进行精确计算的
2,创建BigDecimal的对象,构造方法使用参数类型为字符串的。
3,四则运算中的除法,如果除不尽请使用divide的三个参数的方法。
代码示例:
BigDecimal divide = bd1.divide(参与运算的对象, 小数点后精确到多少位, 舍入模式);
参数1 ,表示参与运算的BigDecimal 对象。
参数2 ,表示小数点后面精确到多少位
参数3 ,舍入模式
BigDecimal.ROUND_UP 进一法
BigDecimal.ROUND_FLOOR 去尾法
BigDecimal.ROUND_HALF_UP 四舍五入