Avatar ·

Formateo de números a cadena con moneda en JavaScript: mejores formas

¡Hola a todos! Soy nuevo en JavaScript y me encontré con este problema: necesito mostrar los precios de los productos en el sitio web como una cadena con moneda, por ejemplo "1 234.56 ₽" o "$1,234.56". Intenté hacerlo manualmente con Math.round y concatenación, pero el código queda horrible, especialmente considerando diferentes monedas y locales. Aquí hay un ejemplo de lo que intenté hacer: ```javascript function formatPrice(price) { const rubles = Math.floor(price); const kopecks = Math.round((price - rubles) * 100); return rubles + ' ₽ ' + (kopecks < 10 ? '0' : '') + kopecks; } ``` Pero esto solo funciona para rublos, y con números grandes (por ejemplo, 1000000) obtengo "1000000 ₽ 00", cuando debería ser "1 000 000.00 ₽". Además, si la moneda es dólares, necesito poner el signo de dólar antes del número y usar punto para los miles y coma para los centavos. Sé que en JavaScript hay algunos métodos integrados, pero no puedo entenderlos. Probé toFixed(2), pero no pone espacios entre los dígitos. Díganme cómo formatear correcta y elegantemente.