Skip to content
On this page

给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。

js
输入:n = 987
输出:"987"

输入:n = 1234
输出:"1.234"

输入:n = 123456789
输出:"123.456.789"

输入:n = 0
输出:"0"

无情的 api 杀手!

js
/**
 * @param {number} n
 * @return {string}
 */
var thousandSeparator = function (n) {
  return n.toLocaleString(3).replace(/,/g, '.');
};

当然不,正规解法:

js
/**
 * @param {number} n
 * @return {string}
 */
var thousandSeparator = function (n) {
  let s = n.toString();
  let j = s.length;
  let result = [];
  while (j - 3 > 0) {
    result.unshift(s.slice(j - 3, j));
    j -= 3;
  }
  // 前面的数 也要判断
  if (j > 0) result.unshift(s.slice(0, j));

  return result.join('.');
};

Better

js
function thousandSeparator(n: number): string {
  const rec = (v: string) => (v.length <= 3 ? v : rec(v.slice(0, -3)) + '.' + v.slice(-3));
  return rec(String(n));
}

Released under the MIT License.