数字格式化 如: 123,456.78

发布时间 2023-04-10 11:27:07作者: 半遮
// 数字格式化 如: 123,456.78 ;

function formatter_k(num) {
  const str = num.toString(); // 转字符串
  const val = str.replace(/\d+/, (n) => {
    return n.replace(/(\d)(?=(\d{3})+$)/g, ($1) => $1 + ",");
  });
  return val;
}
// 排序:默认降序排序,有参数(up)时候做升序,无参数(down)做降序排序
function compare(property, type) {
  type = type || 'down'
  if (type == 'down') {
    return function (a, b) {
      return b[property] - a[property];
    };
  } else {
    return function (a, b) {
      return a[property] - b[property];
    };
  }
}
// 分割十位数个位数
// 获取十位数
function setTenDigits(str) {
  let num = parseInt(str);
  let n = 0;
  if (num < 10) {
    n = 0;
  } else if (num >= 10 && num < 100) {
    n = parseInt(num / 10);
  } else {
    let num_str = num.toString().split("");
    n = num_str[num_str.length - 2];
  }
  return n;
}
// 获取个位数
function setSingleDigits(str) {
  let num = parseInt(str);
  let num_str = num.toString().split("");
  let n = num_str[num_str.length - 1];
  return n;
}

// 检查时间数字是否小于0,小于0则添加0在前面
function checkTime(i) {
  //将0-9的数字前面加上0,例1变为01
  if (i < 10) { i = "0" + i; }
  return i;
}
// 科学计数法(带负数)
function F_E(number, decimal = 2) {
  var num = "";
  var minus = "";
  if (number < 0) minus = "-";
  number = Math.abs(number);
  if (number < 1000) {
    num = number;
  } else if (number >= 1000 && number < 1000000) {
    num = formatDecimal(number / 1000, decimal) + "K";
  } else if (number >= 1000000 && number < 100000000) {
    num = formatDecimal(number / 1000000, decimal) + "M";
  } else if (number >= 100000000) {
    num = formatDecimal(number / 100000000, decimal) + "E";
  }
  // 去除小数点后边多余的0
  let words = ["K", "M", "E"];
  for (let i = 0; i < words.length; i++) {
    let el = words[i];
    if (num.indexOf(el) != -1) {
      arr = num.split(el)[0].split(".");
      if (Number(arr[1]) == 0) {
        num = arr[0] + el;
      }
    }
  }

  return `${minus}${num}`;
}
// 时间戳转日期格式 timeStr
function timestampToStr(stamp) {
  stamp = parseInt(stamp)
  if (stamp.toString().length == 10) {
    stamp = stamp * 1000
  }
  var date = new Date(stamp);
  let Y = date.getFullYear();
  let M = checkTime(Number(date.getMonth() + 1 < 10))
  let D = checkTime(date.getDate())
  let h = checkTime(date.getHours());
  let m = checkTime(date.getMinutes());
  let s = checkTime(date.getSeconds());
  let timeStr = `${Y}-${M}-${D} ${h}:${m}:${s}`
  return timeStr
}