/** * 格式化数字字符串 * @param {String, Number} value 待格式化的字符串 * @param {Number} digits 保留位数 */ function formatNumberString(value, digits = 2) { let number = 0 // 判断是什么类型 if (typeof value === 'string') { number = Number(value) } else if (typeof value === 'number') { number = value } if (isNaN(number) || number === 0) { return 0 } let maxNumber = Math.pow(10, digits) - 1 if (number > maxNumber) { return `${maxNumber}+` } return number } /** * 格式化数字字符串,往数字前添加0 * * @param {Object} num 待格式化的数值 */ function formatNumberAddZero(value) { let number = 0 // 判断是什么类型 if (typeof value === 'string') { number = Number(value) } else if (typeof value === 'number') { number = value } if (isNaN(number) || +number < 10) { return '0' + number } else { return String(number) } } /** * 格式化数字,往数值后添加单位 * * @param {Object} value 待格式化的数值 * @param {Object} digits 保留位数 */ function formatNumberAddPriceUnit(value, digits = 2) { // 数值分割点 const unitSplit = [ { value: 1, symbol: ''}, { value: 1E3, symbol: 'K'}, { value: 1E4, symbol: 'W'}, ] const reg = /\.0+$|(\.[0=9]*[1-9])0+$/ let number = 0 // 判断是什么类型 if (typeof value === 'string') { number = Number(value) } else if (typeof value === 'number') { number = value } let i for (i = unitSplit.length - 1; i > 0; i--) { if (number >= unitSplit[i].value) break } return (number / unitSplit[i].value).toFixed(digits).replace(reg, "$1") + unitSplit[i].symbol } /** * 获取数值的整数位数 * * @param {Object} number 数值 */ function getDigit(number) { let digit = -1 while (number >= 1) { digit++ number = number / 10 } return digit } /** * 获取指定范围的随机数(返回整数) * @param {Object} min 最小值 * @param {Object} max 最大值 */ function random(min, max) { if (min >= 0 && max > 0 && max >= min) { let gab = max - min return Math.random() * gab + min } else { return 0 } } /** * 获取指定范围的随机数(返回整数) * @param {Object} min 最小值 * @param {Object} max 最大值 */ function randomInt(min, max) { if (min >= 0 && max > 0 && max >= min) { let gab = max - min + 1 return Math.floor(Math.random() * gab + min) } else { return 0 } } export default { formatNumberString, formatNumberAddZero, formatNumberAddPriceUnit, random, randomInt }