Перевести миллионы в красивый вид на 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 в конце))

→ Ссылка