BigDecimal
- 用于解决浮点型运算时,出现结果失真的问题。如:0.1+0.2会出现失真结果,
常用构造器和方法
// 把它们都变成字符串封装成BigDecimal对象来运算
BigDecimal a1 = new BigDecimal(Double.toString(a));
BigDecimal b1 = new BigDecimal(Double.toString(b));
// 推荐用以下方法:把小数转换成字符串在得道BigDecimal对象来使用
BigDecimal a1 = BigDecimal.valueOf(a);
BigDecimal b1 = BigDecimal.valueOf(b);
// BigDecimal c1 = a1.add(b1);
// BigDecimal c1 = a1.multiply(b1);
// BigDecimal c1 = a1.subtract(b1);
// 除法除不尽的时候,保留小数点后两位小数
BigDecimal i = BigDecimal.valueOf(0.1);
BigDecimal j = BigDecimal.valueOf(0.3);
BigDecimal k = i.divide(j,2, RoundingMode.HALF_UP);
System.out.println(k);
double rs = k.doubleValue();
System.out.println(rs);
结果如下: