一:意义
用于解决浮点型运算时,出现的失真的问题。
二:用法
1.构造器:
BigDecimal(String val) 把String转成BigDecimal
2.方法:
valueOf(double val) 转换一个double成 BigDceimal。
add(BigDceimal b) 加法。
subtract(BigDceimal b) 减法。
multiple(BigDceimal b) 乘法。
divide(BigDceimal b) 除法。
divide(另一个BigDceimal对象,精确几位,舍入模式) 除法,可以控制精确到小数几位。
doubleValue() 将BigDceimal转换为double。
三:示例
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BIG {
public static void main(String[] args) {
double a1 = 0.1;
double b1 = 0.2;
// BigDecimal a2 = new BigDecimal(Double.toString(a1));
// BigDecimal b2 = new BigDecimal(Double.toString(b1));
//推荐使用下面这种方式
BigDecimal a2 = BigDecimal.valueOf(a1);
BigDecimal b2 = BigDecimal.valueOf(b1);
a2.add(b2);//加法
a2.subtract(b2);//减法
a2.multiply(b2);//乘法
a2.divide(b2);//除法
a2.divide(b2, 3);//除法可以精确控制到小数几位。
a2.divide(b2, 1, RoundingMode.HALF_UP);//除法可以精确控制到小数几位并且采用了舍入模式。
double a3 = a2.doubleValue();//将BigDecimal转化为double。
}
}