一、使用toLocalString()方法
· 当金额为number类型时 ,可以直接使用
let a = 12232332.33
a.toLocalString() //输出字符串 12,232,332.33
· 当金额为字符串类型时
let a = '213123123.32'
parseFloat(a).toLocaleString() //输出字符串213,123,123.32
·此方法还可以对时间进行格式化,如下图 (妈妈再也不用担心我写一大串代码去格式化时间了)
二、当金额,需要保留两位小数,没有小数时显示.00时,toLocalString()方法会将最后的0去掉
· 我的解决办法(字符串拼接),当有效数字为0时,拼接.00,当有效数字为1时,拼接0,两位有效数字,直接显示原值 【如果有更好的办法欢迎大家评论】
//此方法判断小数点后有几位有效数字
function ponit_zero(num){
let a = String(num).indexOf('.') + 1
let b = String(num).length - a
if(a==0){
return 0
}
if(b==1){
return 1
}
if(b==2){
return 2
}
}
//使用
let a = 124234423.10
ponit_zero(a)==0?a.toLocaleString()+".00":ponit_zero(a)==1?a.toLocaleString()+"0":a.toLocaleString()
三、格式化数字方法
/*判断值是否为空,null,undefined*/
function isNullorEmpty(str){
return (str === '' || str === null || str === undefined ||isNaN(str))
}
/* 格式化小数点位数 */
function toFixed(val,len){
if(isNullorEmpty(val)) return '--'
len = len||0;
return val && val !== 0 ? (Math.floor(Number(val) * Math.pow(10,len))/Math.pow(10,len)).toFixed(len):'0'
}
/* 格式化百分比*/
function toPercent(val,len){
if(isNullorEmpty(val)) return '--';
return val && val !==0 ?(Math.floor(Number(val) * Math.pow(10,len)) / Math.pow(10,len)) .toFixed(len) + '%' : '0%'
}