

第二张图片中,费用支出为78.99000000000001元,为什么会产生那一串零?如何解决?
关注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);
}