小芝士 | JS格式化数字,金钱格式三位一逗号实现(¥222,232,32.34)

一、使用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%'
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值