/**
*将传入的数字转换为千分位
arr1传入的数组
arr2数组中需要格式化的字段
*/
dealNumber = (arr1, arr2, decimals, dec_point, thousands_sep) => {
arr1 = arr1 || []
arr2 = arr2 || []
for(let item of arr1){
for(let o of Object.keys(item)){
if(arr2.indexOf(o) !== -1 && !(!item[o] && item[o] !== 0 && typeof item[o] !== 'boolean')){
let number = item[o]
let newNumber = number
let pointLength
let numberArr = newNumber.toString().split('.')
if(numberArr.length > 1){
pointLength = numberArr[1].length
}else{
pointLength = 0
}
number = (number + '').replace(/[^0-9+-Ee.]/g,'')
let n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? pointLength : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = (n, prec)=>{
let k = Math.pow(10, prec)
return '' + Math.round(n*k)/k
};
s = (prec ? toFixedFix(n, prec):''+Math.round(n)).split('.')
let re = /(-?\d+)(\d{3})/
while (re.test(s[0])){
s[0] = s[0].replace(re, '$1', sep + '$2')
}
if((s[1] || '').length < prec){
s[1] = s[1] || ''
s[1] += new Array(prec - s[1].length + 1).join('0')
}
item[o] = s.join(dec)
}
}
}
}
将传入的数字转换为千分位
最新推荐文章于 2024-07-16 16:43:05 发布