1、用于解决浮点型运算时,出现失真的问题
BigDecimal常见的构造器和方法
构造器 | 说明 |
public BigDecimal (double val) | 把double转变成BigDecimal |
public BigDecimal(String val) 注意:推荐使用这个 | 把String转变成BigDecimal |
方法名 | 说明 |
public static BigDecimal valueof(double val) | 转换一个double成BigDecimal |
public BigDecimal add (BigDecimal b) | 加法 |
public BigDecimal subtract (BigDecimal b) | 减法 |
public BigDecimal multiply (BigDecimal b) | 乘法 |
public BigDecimal divide (BigDecimal b) | 除法 |
public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式) | 除法,可以控制精确到小数几位 |
public double doublevalue() | 将BigDecimal转换成double |
public class Test1 {
public static void main(String[] args) {
double a=0.1;
double b=0.2;
double c=a+b;
System.out.println(c);//0.30000000000000004
//BigDecimal a1=new BigDecimal(Double.toString(a));
//BigDecimal b1=new BigDecimal(Double.toString(b));
BigDecimal a1=BigDecimal.valueOf(a);
BigDecimal b1=BigDecimal.valueOf(b);
System.out.println(a1.add(b1));
System.out.println(a1.subtract(b1));
System.out.println(a1.multiply(b1));
System.out.println(a1.divide(b1));
System.out.println(a1.divide(b1, 2, RoundingMode.HALF_UP));
}
}