数字的格式化

传入的数字,小数点后面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              

你可能感兴趣的:(数字的格式化)