java四舍五入返回String方法

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);

}

你可能感兴趣的:(java四舍五入返回String方法)