blog icon indicating copy to clipboard operation
blog copied to clipboard

千分位分割数字

Open nmsn opened this issue 2 years ago • 0 comments

function format(num) {
  num = num.toString();
  const [integer, decimal] = num.split(".");

  if (integer.length < 3) {
    return num;
  }
  
  const remainder = integer.length % 3;

  let integerStr = "";
  const decimalStr = decimal ? `.${decimal}` : "";

  if (remainder > 0) {
    // 不是正数倍
    integerStr = `${integer.slice(0, remainder)},${insert(
      integer.slice(remainder)
    )}`;
  } else {
    // 能够整除
    integerStr = insert(integer);
  }

  return `${integerStr}${decimalStr}`;
}

// 工具函数,给字符串插入 ','
function insert(str) {
  return str.match(/\d{3}/g).join(",");
}

nmsn avatar Nov 17 '22 15:11 nmsn