使用BigDecimal类
public class Application {
//springboot项目代码必须放到Application类所在的同级目录或下级目录
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
BigDecimal a = new BigDecimal("0.12354511111111");
BigDecimal b = new BigDecimal("0.11111111111111");
double a1 = 0.12354511111111;
double a2 = 0.11111111111111;
double c1 = a1*a2;
double c =a.multiply(b).doubleValue();
System.out.println(c);
System.out.println(c1);
}
输出结果:很明显,下面直接double相乘的进度损失了,用BigDecimal构造方法转换的double类型的数据相乘结果是正确的,精度没有损失。
0.013727234567900974
0.013727234567900972