金额按千分位划分
方法一(此方法只取整):
function get_debt(n){
var b=parseInt(n).toString();
var len=b.length;
if(len<=3){return b;}
var r=len%3;
return r>0?b.slice(0,r)+","+b.slice(r,len).match(/\d{3}/g).join(","):b.slice(r,len).match(/\d{3}/g).join(",");
}
例:
get_debt(1154521) =》1154,521
方法二(此方法保留两位小数):
function get_debt(num) {//number、string都可以转换
//判断是否有小数点
var s = num.toString().indexOf(".");
if(s == -1){//是整数
return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')+".00";
}else{//是小数
var arr = num.toString().split(".");
if(arr.length > 1 && arr[1].length < 2){//一位小数
return (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + "." + arr[1] + "0";
}else{//两位小数
return (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + "." + arr[1];
}
}
}
例:
get_debt(1154521) =》1,154,521.00
get_debt(1154521.10) =》1,154,521.10
get_debt(1154521.12301)=》1,154,521.12301
方法三(此方法保留所有小数):
function get_debt(n){
n = n || 0
let xsw = '';
if(n){
let strN = n.toString();
if(strN.includes(".")){
xsw = '.' + strN.split('.')[1]
}
}
var b=parseInt(n).toString();
var len=b.length;
if(len<=3){return b + xsw}
var r=len%3;
return (r>0?b.slice(0,r)+","+b.slice(r,len).match(/\d{3}/g).join(","):b.slice(r,len).match(/\d{3}/g).join(",")) + xsw
}
例:
get_debt(1154521.10) =》1,154,521.1
get_debt(1154521.1000)=》1,154,521.1
get_debt(1154521.110)=》1,154,521.11
get_debt(1154521.12301)=》1,154,521.12301