Sometimes, we want to format a number so that we show K at the end if it’s a thousand or more and return the show number if it’s less than 1000.
In this article, we’ll look at how to format a number with K at the end if it’s 1000 or more and return the whole number otherwise.
Use Math Methods
We can create our own function that use Math
methods to check if a number is 1000 or bigger in absolute value.
If it is, then we divide by 1000 and add a K after it.
Otherwise, we return the whole number.
To do this, we write:
const kFormatter = (num) => {
return Math.abs(num) > 999 ? Math.sign(num) * ((Math.abs(num) / 1000).toFixed(1)) + 'k' : Math.sign(num) * Math.abs(num)
}
console.log(kFormatter(1200));
console.log(kFormatter(-1200));
console.log(kFormatter(900));
console.log(kFormatter(-900));
We create the kFormatted
function that takes the num
number parameter.
Then we check if num
is bigger than 999 in absolute value.
Math.abs
lets us compute the absolute value of a number.
If it’s bigger than 999, then we use Math.sign
to get the sign of the number.
Math.sign
return -1 if the number is negative and 1 otherwise.
Then we multiply that by the absolute value of num
divided by 1000.
And then we call toFixed
with 1 to return a string version of the number rounded to one decimal place.
Then we add 'k'
after it.
Otherwise, we just return the number itself with:
Math.sign(num) * Math.abs(num)
So we get:
1.2k
-1.2k
900
-900
from the console log results.
Conclusion
We can use various Math
methods to format numbers to return a truncated number if it’s 1000 or more and return the whole number otherwise.