總是需要用到金額的格式化的運算,在此計算以便後期使用:
前端格式化:
/*
* 格式化數字千分位並保留小數後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);
}