一、BigDecimal概述
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则可以使用BigDecimal类来操作。
二、BigDecimal的比较
int a = bigdemical.compareTo(bigdemical2)
a = -1,表示bigdemical小于bigdemical2;
a = 0,表示bigdemical等于bigdemical2;
a = 1,表示bigdemical大于bigdemical2;
三、BigDecimal的运算
因为BigDecimal是对象,所以所有运算需要调用方法。
加法:add()
减法:subtract()
乘法:multiply()
除法:divide()
注:1. 若需要累加,则一定要赋值才能成功.
2.若除法中出现无限小数时,会抛异常,可以用divide方法设置精确的小数点,如:divide(xxx,2).
BigDecimal b1 = new BigDecimal("2");
BigDecimal b2= new BigDecimal("12");
BigDecimal b3= null;
//加法
b2= b1.add(bignum2);
System.out.println("求和:" + b2);
//减法
b3= b1.subtract(b2);
System.out.println("求差:" + b3);
//乘法
b3= b1.multiply(b2);
System.out.println("乘法积:" + b3);
//除法
b3= b1.divide(b2);
System.out.println("除法结果:" + b3);