Skip to content
本页目录

1556、千位分隔数

题目描述:

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

  • 示例:

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

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

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

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

解法一思路

  • 1、先利用 APINumber.prototype.toLocaleString() 把数字转成用 , 分隔的千分位字符串。
  • 2、再用正则替换一下就OK了。

代码

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

解法二思路

  • 1、先转为字符串。
  • 2、每次截三个字符,算出需要截多少次向下取整。
  • 3、while 循环将结果放数组中。
  • 4、最后把数组进行 join('.')操作得到结果。

代码

javascript
/**
 * @param {string} s
 * @return {number}
 */
var thousandSeparator = function (n) {
  let nub_str = n.toString();
  let time = Math.floor(nub_str.length / 3);
  const resArr = [];
  while (time >= 0) {
    let temp = nub_str.slice(-3);
    if (temp) resArr.unshift(temp);
    nub_str = nub_str.slice(0, nub_str.length - 3);
    time--;
  }
  return resArr.join('.');
};

MIT Licensed