Перевести миллионы в красивый вид на js
Есть число вида 4584895. Надо на js перевести в 4,6 млн.
Желательно на нативном js, максимум jquery.
Какие есть варианты?
Был такой вариант, но он ужасен и был брошен на полпути:
var num = '123456789';
var arrNum = num.split('');
var numAfter = (Math.round((arrNum.splice(-6).join('')) / 100000) * 100000).toString().replace(/0/g, '');
Заранее спасибо
Ответы (2 шт):
Автор решения: Vilyaka
→ Ссылка
let myNumber = 4584895,
myFixedNumber = (myNumber/1000000).toFixed(1),
myMillion = myFixedNumber + ' млн';
console.log( myMillion );
Автор решения: OPTIMUS PRIME
→ Ссылка
console.log( "123 →", shortenNumRu(123) );
console.log( "123456 →", shortenNumRu(123456) );
console.log( "123456789 →", shortenNumRu(123456789) );
console.log( "1234567890 →", shortenNumRu(1234567890) );
console.log( shortenNumRu("Moo...") );
function shortenNumRu(num) {
if( isNaN(num) ) throw new Error(num + " is not a Number!");
let bubu = {
"0": "",
"1": " тыс.",
"2": " млн",
"3": " млрд",
};
let thousands = Math.floor( (("" + num).length - 1) / 3 );
let coef = 1000 ** thousands;
return ( num / coef ).toFixed(1) + bubu[ thousands ];
}
Домашнее задание: Добавить условие, удаляющее .0 в конце))