Skip to content

千分位分割数字 #63

@nmsn

Description

@nmsn
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(",");
}

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions