Avatar ·

Formatação de números em string com moeda em JavaScript: melhores formas

Olá a todos! Sou novo em JavaScript e me deparei com o seguinte problema: preciso exibir preços de produtos em um site como string com moeda, por exemplo "1 234.56 ₽" ou "$1,234.56". Tentei fazer manualmente com Math.round e concatenação, mas o código fica horrível, especialmente considerando diferentes moedas e locales. Aqui está um exemplo do que tentei fazer: ```javascript function formatPrice(price) { const rubles = Math.floor(price); const kopecks = Math.round((price - rubles) * 100); return rubles + ' ₽ ' + (kopecks < 10 ? '0' : '') + kopecks; } ``` Mas isso funciona apenas para rublos, e com números grandes (por exemplo, 1000000) fica "1000000 ₽ 00", quando deveria ser "1 000 000.00 ₽". Além disso, se a moeda for dólar, é preciso colocar o cifrão antes do número e usar ponto para milhares e vírgula para centavos. Sei que existem alguns métodos nativos em JavaScript, mas não consigo entender. Tentei toFixed(2), mas ele não coloca espaços entre os dígitos. Digam-me como formatar corretamente e de forma elegante.