123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- /**
- * 格式化数字字符串
- * @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
- }
|