public static String getNUmFormat(Double d) { if (d == 100) { DecimalFormat df = new DecimalFormat("000.00%"); return df.format(d); } else if (d >= 10) { DecimalFormat df = new DecimalFormat("00.00%"); return df.format(d); } else{ DecimalFormat df = new DecimalFormat("0.00%"); return df.format(d); } }
还有一种是这样的,这种不会一直保存为00.00% 当数据的小数为,是根据传入数据的小数位数进行变动的 例如传入 0.007 转换的结果为 0.7% 并不会转换为0.70%,如果无论如何都保留2位百分比小数,推荐用第一种方式,真的坑
public static String getNumStringFormat(int maxFract, int minFract, int maxInt, int minInt, Double d) { NumberFormat percentFormat = NumberFormat.getPercentInstance(); percentFormat.setMaximumFractionDigits(maxFract); //最大小数位数 percentFormat.setMaximumIntegerDigits(maxInt); //最大整数位数 percentFormat.setMinimumFractionDigits(minFract); //最小小数位数 percentFormat.setMinimumIntegerDigits(minInt); //最小整数位数 return df.format( d);//自动转换成百分比显示 }