1.设置保留2个小数位,四舍五入
public static String fomatScale(float num) {
if (num ==0) {
return "0.00";
}
String[] nums = (num +"").split("\\.");
if (nums.length >1) {
if (nums[1].length() ==1) {
return num +"0";
}
}
String result = num +"";//默认返回原值
try {
DecimalFormat fnum =new DecimalFormat("##0.00");
result = fnum.format(num);
}catch (Exception e) {
e.printStackTrace();
}
return result;
}
2.设置保留1个小数位,四舍五入
public static String fomatScale1(float num) {
DecimalFormat fnum =new DecimalFormat("##0.0");
String result = fnum.format(num);
return result;
}
3.设置保留2个小数位,四舍五入
public static Double fomatDouble(double num) {
BigDecimal b =new BigDecimal(num);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return f1;
}
4.设置保留2个小数位,四舍五入 (去掉多余的0)
public static String getMoneyString(double num) {
BigDecimal b =new BigDecimal(num);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return subZeroAndDot(f1 +"");
}
5.设置保留scale个小数位,四舍五入 (去掉多余的0) scale 小数点数量
public static String getMoneyString(double num,int scale) {
BigDecimal b =new BigDecimal(num);
double f1 = b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
return subZeroAndDot(f1 +"");
}
6.使用java正则表达式去掉多余的.与0
public static String subZeroAndDot(String s) {
if (s.indexOf(".") >0) {
s = s.replaceAll("0+?$","");//去掉多余的0
s = s.replaceAll("[.]$","");//如最后一位是.则去掉
}
return s;
}
7.设置保留个小数位,四舍五入 (不去掉多余的0)
public static String getMoneyString2(double num) {
DecimalFormat df =new DecimalFormat("######0.00");
return df.format(num);
}