Buscando una solución para obtener el valor total de la moneda, incluidos los centavos. numberingSystem: 'fullwide' viene con espacio entre letras cuando se obtienen dígitos completos. ¿Hay alguna opción para obtener dígitos completos con código de moneda en NumberFormat()?
Comportamiento esperado: €56.123456
const CurrencyFormat = (amount = 0, currency = 'eur', digitLength = 'latn') => { return new Intl.NumberFormat('en-GB', { style: 'currency', currency: currency, numberingSystem: digitLength, }).format(amount) }; console.log(CurrencyFormat(56.123456, 'eur', 'fullwide')); console.log(CurrencyFormat(56.123456));Agregue una propiedad maximumFractionDigits a las opciones con la cantidad de dígitos fraccionarios que desea permitir.
const CurrencyFormat = (amount = 0, currency = 'eur', digitLength = 'latn') => { return new Intl.NumberFormat('en-GB', { style: 'currency', currency: currency, numberingSystem: digitLength, maximumFractionDigits: 20, }).format(amount) }; console.log(CurrencyFormat(56.123456, 'eur', 'fullwide')); console.log(CurrencyFormat(56.123456)); Encontré esto al encontrar la palabra MaximumFractionDigits en la especificación y descubrir que es una propiedad en instancias que se puede configurar a través del objeto de opciones. .
maximumFractionDigits ayudó a obtener decimales
const CurrencyFormat = (amount = 0, currency = 'eur') => { return new Intl.NumberFormat('en-GB', { style: 'currency', currency: currency, maximumFractionDigits: amount.toString().length, }).format(amount) }; console.log(CurrencyFormat(56.123456, 'eur', 'fullwide')); console.log(CurrencyFormat(56.123456));