4.420190903002E12 当double数值较大时,好比20160101,在转化为string时,jvm转换成了科学记数法,就是 2.0160101E7; DecimalFormat df = new DecimalFormat("#.00"); String str = df.format(dou); https://blog.csdn.net/qq_35936174/article/details/92970793 不行,缺乏精度 System.out.println(Double.toString(FittingController.version));// 也不行 https://blog.csdn.net/u011936655/article/details/51959969 double小就没问题。 // FittingController.version = new Double(1234567890123456789L);// 精度缺失 FittingController.version = new Double(12345678901234L);// 没问题 DecimalFormat df = new DecimalFormat("#");// #.00 String versionStr = df.format(FittingController.version); System.out.println(versionStr);// 1234567890123456770 精度缺失 NumberFormat nf = NumberFormat.getInstance(); nf.setGroupingUsed(false); String dou_str = nf.format(FittingController.version); System.out.println(dou_str);// 同样1234567890123456770 精度缺失 System.out.println(Double.toString(FittingController.version));// 精度缺失