js方法格式化數字,加入千分符,並可以指定小數點位數,支援負數
阿新 • • 發佈:2018-12-07
//js方法格式化數字,加入千分符,並可以指定小數點位數
function number(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];
r = r == null ? "" : "." + r;
var t = "";
console.log (l)
if (l[l.length - 1] === '-') {//負數不需要分隔號,
for (var i = 0; i < l.length; i++) {
if (l[i]==='-') {
t += l[i]+""
continue
}
//不是陣列的倒數第二個元素才加"," ["0", "4", "5", "-"]
t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length-1 ? "," : "");
//i + 1 != l.length 會變成-,540.00,因為在5時元素位置2+1為3非陣列長度
//t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? "," : "");
}
}
else {
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
);
}