public static void main(String[] args) { double d = (double) 250 / 365; long t33 = System.currentTimeMillis(); String aa33= formatDouble3(d); System.out.println("值:"+aa33+";耗时:"+ (System.currentTimeMillis() - t33)+"ms ; :"+ d); System.out.println("==============四舍五入耗时排序==================="); long t3 = System.currentTimeMillis(); String aa3= formatDouble3(d); System.out.println("值:"+aa3+";耗时:"+ (System.currentTimeMillis() - t3)+"ms ; :"+ d); long t5 = System.currentTimeMillis(); String aa5 = formatDouble1(d)+""; System.out.println("值:"+aa5+";耗时:"+ (System.currentTimeMillis() - t5)+"ms ; :"+ d); long t2 = System.currentTimeMillis(); String aa2 = formatDouble4(d); System.out.println("值:"+aa2+";耗时:"+ (System.currentTimeMillis() - t2)+"ms ; :"+ d); long t4 = System.currentTimeMillis(); String aa4 = formatDouble2(d)+""; System.out.println("值:"+aa4+";耗时:"+ (System.currentTimeMillis() - t4)+"ms ; :"+ d); long t1 = System.currentTimeMillis(); String aa = formatDouble5(d); System.out.println("值:"+aa+";耗时:"+ (System.currentTimeMillis() - t1)+"ms ; :"+ d); } public static double formatDouble1(double d) { return (double)Math.round(d*10)/10; } public static double formatDouble2(double d) { // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN BigDecimal bg = new BigDecimal(d).setScale(1, RoundingMode.UP); return bg.doubleValue(); } public static String formatDouble3(double d) { NumberFormat nf = NumberFormat.getNumberInstance(); // 保留两位小数 nf.setMaximumFractionDigits(1); // 如果不需要四舍五入,可以使用RoundingMode.DOWN nf.setRoundingMode(RoundingMode.UP); return nf.format(d); } public static String formatDouble4(double d) { DecimalFormat df = new DecimalFormat("#.0"); return df.format(d); } public static String formatDouble5(double d) { return String.format("%.1f", d); }