我有此功能将“ 1234”之类的数字转换为“ 1.234”:



function numberWithPoint(x) {
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}


console.log(numberWithPoint(1234));
console.log(numberWithPoint(1200));





但是当我有一个类似“ 1200”的数字时,它将转换为“ 1.2”。为什么?

最佳答案

因为它们是数字,并且数字在转换为字符串时不需要显示额外的零。

但是您可以这样做:



function numberWithPoint(x) {
  return (x/1000).toFixed(3);
}


console.log(numberWithPoint(1234));
console.log(numberWithPoint(1230));
console.log(numberWithPoint(1200));
console.log(numberWithPoint(1000));





函数Number.prototype.toFixed允许您指定要包含在.之后的位数。

07-26 00:30