Java Double精準(zhǔn)計(jì)算的坑
public static void main(String[] args) {
System.out.println(5053.6 * 100);
BigDecimal bigDecimal1 = new BigDecimal(5053.6);
BigDecimal bigDecimal2 = new BigDecimal(100);
double d1 = bigDecimal1.multiply(bigDecimal2).doubleValue();
System.out.println(d1);
BigDecimal bigDecimal3 = new BigDecimal(5053.6+"");
BigDecimal bigDecimal4 = new BigDecimal(100+"");
double d2 = bigDecimal3.multiply(bigDecimal4).doubleValue();
System.out.println(d2);
}
505360.00000000006
505360.000000000060
505360.0
第一個(gè)計(jì)算結(jié)果是錯(cuò)誤的
第二個(gè)計(jì)算結(jié)果也是錯(cuò)誤的
只有第三個(gè)計(jì)算結(jié)果是正確
這是一個(gè)做電商應(yīng)用常見得坑,可以做為面試題