java中Double转BigDecimal计算的关于精度的思考
Double d1 = 0.1;
Double d2 = 0.2;
System.out.println(d1 + d2);
System.out.println(-d2);
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
System.out.println(b1.add(b2));
System.out.println(b1.add(b2).doubleValue());
BigDecimal b3 = new BigDecimal(Double.toString(d1));
BigDecimal b4 = new BigDecimal(Double.toString(d2));
System.out.println(b3.add(b4));
System.out.println(b3.add(b4).doubleValue());
System.out.println(new BigDecimal(0.3).subtract(new BigDecimal(0.1)).doubleValue());
System.out.println(new BigDecimal(Double.toString(0.3)).subtract(new BigDecimal(Double.toString(0.1))).doubleValue());