Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • 处理数字方法

处理数字方法

/**
 * @param {Number} num num为原数字
 * @param {Number} fix fix是保留的小数位数
 * @param {Number} rule 要处理数据的规则,0 向上取整;1 向下取整;2,四舍五入
 * @return {Number} 处理完的数字
 */
// 商品用量 换算规则
export function getNumber(num, fix, rule) {
  let results = 0;
  if (rule == 0) {
    results = upFixed(num, fix)
  } else if (rule == 1) {
    results = downFixed(num, fix)
  } else if (rule == 2) {
    results = num.toFixed(fix)
  }
  return results;
}
// 向上取整
function upFixed(num, fix) {
  // num为原数字,fix是保留的小数位数
  let result = '0'
  if (Number(num) && fix > 0) { // 简单的做个判断
    fix = +fix || 2
    num = num + ''
    if (/e/.test(num)) { // 如果是包含e字符的数字直接返回
      result = num
    } else if (!/\./.test(num)) { // 如果没有小数点
      result = num + `.${Array(fix + 1).join('0')}`
    } else { // 如果有小数点
      num = num + `${Array(fix + 1).join('0')}`
      let reg = new RegExp(`-?\\d*\\.\\d{0,${fix}}`)
      let floorStr = reg.exec(num)[0]
      if (+floorStr >= +num) {
        result = floorStr
      } else {
        let floorNumber = +floorStr + +`0.${Array(fix).join('0')}1`
        let point = /\./.test(floorNumber + '') ? '' : '.'
        let floorStr2 = floorNumber + point + `${Array(fix + 1).join('0')}`
        result = reg.exec(floorStr2)[0]
      }
    }
  }
  return result
}
// 向下取整
function downFixed(num, fix) {
  // num为原数字,fix是保留的小数位数
  let result = '0', num1 = Number(fix) + 2;
  let num2 = num.toFixed(num1);
  result = num2.substring(0, num2.indexOf(".") + 3);
  return result;
}
// 向下取整
export function checkEmpty(str) {
  if (str == 'undefined' || !str || !/[^\s]/.test(str)) {
    return true;
  } else {
    return false;
  }
}
Edit this page
最近更新: 2025/12/2 01:46
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人