double 计算时,要使用bigdecimal 来计算。直接使用double 相加。会丢失精度,导致结果错误。
double直接转成string时,会转成3.7e21这种方式,需要使用NumberFormat 来转换private String getStringBuffer(String bm) throws ParseException { NumberFormat instance = NumberFormat.getInstance(); BigDecimal bigDecimal = new BigDecimal(bm); BigDecimal add = bigDecimal.add(new BigDecimal(1)); return instance.format(add, new StringBuffer(), new FieldPosition(0)).toString().replaceAll(",","");}