java double计算精度问题
double计算防止精度丢失:
方案:将double转成bigDecimal
System.out.println(0.11+2001299.32);//非精确的输出
BigDecimal bigDecimal1 = new BigDecimal(Double.toString(0.11));
BigDecimal bigDecimal2 = new BigDecimal(Double.toString(2001299.32));
BigDecimal bb = bigDecimal1.add(bigDecimal2);
System.out.println(bb.doubleValue());//精确的输出
运行结果:
2001299.4300000002
2001299.43
bigdeciaml转double:
BigDecimal a = new BigDecimal(1000);
double d = a.doubleValue(); // 查看bigDecimal API
网友评论