double精度丢失导致的,可以保留小数,或者用BigDecimal 去计算,可以参考下这个
public static void main(String[] args) {
double a=0.1+0.2;
System.out.println("double计算"+a);
BigDecimal ab=BigDecimal.valueOf(a);
double b = ab.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("保留两位"+b);
BigDecimal bigDecimal=BigDecimal.valueOf(0.2);
BigDecimal add=bigDecimal.add(BigDecimal.valueOf(0.1));
System.out.println("BigDecimalAdd计算"+add);
}