new BigDecimal(double val) 使用上述方法创建对象会导致精度丢失问题。 eg: BigDecimal b1 = new BigDecimal(new Double(19.99)); System.out.println(b1);//19.989999999999998436805981327779591083526611328125 解决方法: 1、BigDecimal b1 = new BigDecimal(String str); 使用这个方法