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));// 精度缺失