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