美文网首页
数字的格式化

数字的格式化

作者: 小呆糊总 | 来源:发表于2020-12-24 17:59 被阅读0次
    传入的数字,小数点后面2位及以下保留2位,3位保留3位,4位及以上保留4位的数据处理
    numberFormat(price){//price传值98776543.978765
        let tempNum = 0
        if (price && price != null) {
            price = String(price);
    //.是为了判断.后有几位小数,超过4位截取4位,不超过4位,3位展示3位,2位以下的补足2位
            if(price.indexOf(".") != -1){
                var left = price.split('.')[0], right = price.split('.')[1];
                var rightLen = right.length > 4 ? 4 : right.length < 2 ? 2 : right.length
                var zhishu = 10 ** (rightLen==2 ? 2 : rightLen==3 ? 3 : 4)//10的rightLen次方
                // console.log(zhishu + typeof(zhishu))
                tempNum = ( parseInt( price* zhishu ) / zhishu ).toFixed(rightLen)
                //98776543.9787
          
            }else{//整数保留2位
                tempNum = ( parseInt( price* 100 ) / 100 ).toFixed(2)
            }
            // 格式化98776543.9787
                let tempNumleft = tempNum.split('.')[0]//98776543
                let tempNumright = tempNum.split('.')[1]//9787
                console.log(tempNumleft.split('').reverse().join(''))//34567789
                let tempLeft = tempNumleft.split('').reverse().join('').match(/(\d{1,3})/g)//["345", "677", "89"]
                console.log(tempLeft)// ["345", "677", "89"]
                console.log(tempLeft.join(','))//345,677,89
                console.log(tempLeft.join(',').split(''))//["3", "4", "5", ",", "6", "7", "7", ",", "8", "9"]
                console.log(tempLeft.join(',').split('').reverse())//["9", "8", ",", "7", "7", "6", ",", "5", "4", "3"]
                console.log(tempLeft.join(',').split('').reverse().join(''))//98,776,543
                return tempLeft.join(',').split('').reverse().join('') + '.'+tempNumright//98,776,543.9787              
    
        }
    
    小数点左侧的格式化代码
    // 格式化98776543.9787
     let tempNumleft = tempNum.split('.')[0]//98776543小数点左侧
     let tempNumright = tempNum.split('.')[1]//9787小数点右侧
     let tempLeft = tempNumleft.split('').reverse().join('').match(/(\d{1,3})/g)//["345", "677", "89"]
     return tempLeft.join(',').split('').reverse().join('') + '.'+tempNumright//98,776,543.9787              
    
    

    相关文章

      网友评论

          本文标题:数字的格式化

          本文链接:https://www.haomeiwen.com/subject/ganmnktx.html