总是需要用到金额的格式化的运算,在此计算以便后期使用:
前端格式化:
/*
* 格式化数字千分位并保留小数后N位,并四舍五入
* 参数说明:
* n:保留几位小数
* */
function formatMoney(s, n) {
n = n > 0 && n <= 20 ? n : 2;
s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
var t = "";
for (var i = 0; i < l.length; i++) {
t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
}
return t.split("").reverse().join("") + "." + r;
}
/**
* 去除千分位
*/
function commafyback(num){
var x = num.split(',');
return parseFloat(x.join(""));
}
JAVA后台格式化:
fmtMicrometer("123456",NumberUtil.RETAIN_TWO_DIGITS)
/**
* 保留小数点后2位
*/
public static final String RETAIN_TWO_DIGITS = "#,###.00";
/**
* 保留小数点后5位
*/
public static final String RETAIN_FIVE_DIGITS = "#,###.00000";
/**
* 根据参数格式化数字
* @param text
* @return
*/
public static String fmtMicrometer(String text , String fmt) {
DecimalFormat df = new DecimalFormat(fmt);
double number = 0.0;
try {
number = Double.parseDouble(text);
} catch (Exception e) {
number = 0.0;
}
return df.format(number);
}