En el siguiente ejemplo, quiero convertir 16000,00 USD en 16 000,00 USD , pero probé con toLocalString para agregar un separador de coma y vincular el USD por fin. Pero no pude hacerlo.
Alguien que me ayude a lograr esto.
Resultado Real: 16,000.00
Resultado Esperado: 16,000.00 USD
var price = $("abbr").text() var abbr_text = parseFloat(price) result_ainp = abbr_text.toLocaleString(undefined, {minimumFractionDigits: 2}) console.log('result_ainp',result_ainp) $("abbr").text(result_ainp) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <abbr>16000 USD</abbr>Puede lograr esto dividiendo la cadena primero, usando split() , procesando el número por sí mismo y luego volviendo a colocar la cadena antes de asignarla al elemento.
Nota : el fragmento a continuación contiene más cosas definidas de lo que debería, pero tiene el propósito de mostrar el resultado de cada paso.
Nota : el fragmento de código siguiente también hace uso de la asignación de desestructuración y los literales de plantilla .
const price = $("abbr").text(); const [amount, currency] = price.split(' '); const parsedAmount = parseFloat(amount); const processedAmount = parsedAmount.toLocaleString( undefined, { minimumFractionDigits: 2 } ); const finalPrice = `${processedAmount} ${currency}`; $("abbr").text(finalPrice); console.log('result_ainp', finalPrice); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <abbr>16000 USD</abbr>Esto podría ser útil:
Intl.NumberFormat() de JavaScript permite el formato de números sensible al idioma sin necesidad de una biblioteca de terceros.
Documentos completos en MDN para ello: Enlace
Ejemplo:
new Intl.NumberFormat('en-US', { style: "currency", currency: "USD"}).format(123456.789) // '$123,456.79' new Intl.NumberFormat('de-DE', { style: "currency", currency: "EUR"}).format(123456.789) // '123.456,79 €'