将数字更改为字符串并正确地将它们四舍五入 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);
}
我从 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);
}