将数字更改为字符串并正确地将它们四舍五入 JS

Change Numbers ro Strings and round them correctly JS

我从 CMS 中获取了大约 1000 个不同的数字,并将它们显示在我的前端。我想将 1000 以上的任何值显示为 1k 等等。只有完整的数字,没有小数。 几个例子:1200 = 1.2k, 1209 = 1.2k, 18094 = 18.1k 999 = 999

因此,首先我必须检查每个数字是否超过 3 位数字,如果是这样,它应该正确舍入,然后在数字后附加一个“k”(在本例中为字符串)。 第一步对我来说很清楚,但我对正确的舍入有点费劲。该解决方案还应尽可能最具成本效益。解决方案需要在 JS 中。

也许有人可以帮助我,在此先感谢!

转换为Number,如果>1000除以1000用Number.toFixed显示

["22", "13421"].forEach( n => console.log(+n > 1000 ? `${(+n/1000).toFixed(1)}k` : n) );

四舍五入,除后用toFixed只取.后一位

  • num = (num/1000).toFixed(1);

在此处添加详细代码,

//test run data
let nums = [10,10,100,1000,2000,2220];
//just for printing
let numString = '';
//you can store in another or ...

nums.forEach(converter);

function converter(num){
  if(num >= 1000){
    num = (num/1000).toFixed(1);
    numString = num+ 'k';
  }else{
    numString = num+'';
  }
  console.log(numString);
}