Al fin luego de tanto trabajar pudimos hallar la solución de este asunto que ciertos de nuestros lectores de nuestra web presentan. Si deseas aportar algún dato puedes dejar tu información.
los Intl.NumberFormat
El objeto habilita el formato numérico sensible al idioma.
Constructor
Intl.NumberFormat()
- Crea un nuevo
NumberFormat
objeto.
Métodos estáticos
Intl.NumberFormat.supportedLocalesOf()
- Devuelve un array que contiene las configuraciones regionales proporcionadas que son compatibles sin tener que recurrir a la configuración regional predeterminada del tiempo de ejecución.
Métodos de instancia
Intl.NumberFormat.prototype.format()
- Función getter que formatea un número de acuerdo con la configuración regional y las opciones de formato de este
Intl/NumberFormat
objeto. Intl.NumberFormat.prototype.formatToParts()
- Devuelve un
Array
de objetos que representan el número string en partes que se pueden utilizar para el formato personalizado con reconocimiento de configuración regional. Intl.NumberFormat.prototype.resolvedOptions()
- Devuelve un nuevo objeto con propiedades que reflejan la configuración regional y las opciones de clasificación calculadas durante la inicialización del objeto.
Ejemplos de
Uso básico
En uso básico sin especificar una configuración regional, un formato string en la configuración regional predeterminada y con las opciones predeterminadas se devuelve.
var number =3500; console.log(newIntl.NumberFormat().format(number));// → '3,500' if in US English locale
Usando locales
Este ejemplo muestra algunas de las variaciones en los formatos de números localizados. Para obtener el formato del idioma utilizado en la interfaz de usuario de su aplicación, asegúrese de especificar ese idioma (y posiblemente algunos idiomas alternativos) utilizando el locales
argumento:
var number =123456.789;// German uses comma as decimal separator and period for thousands console.log(newIntl.NumberFormat('de-DE').format(number));// → 123.456,789// Arabic in most Arabic speaking countries uses real Arabic digits console.log(newIntl.NumberFormat('ar-EG').format(number));// → ١٢٣٤٥٦٫٧٨٩// India uses thousands/lakh/crore separators console.log(newIntl.NumberFormat('en-IN').format(number));// → 1,23,456.789// the nu extension key requests a numbering system, e.g. Chinese decimal console.log(newIntl.NumberFormat('zh-Hans-CN-u-nu-hanidec').format(number));// → 一二三,四五六.七八九// when requesting a language that may not be supported, such as// Balinese, include a fallback language, in this case Indonesian console.log(newIntl.NumberFormat(['ban','id']).format(number));// → 123.456,789
Usar opciones
Los resultados se pueden personalizar utilizando el options
argumento:
var number =123456.789;// request a currency format console.log(newIntl.NumberFormat('de-DE', style:'currency', currency:'EUR').format(number));// → 123.456,79 €// the Japanese yen doesn't use a minor unit console.log(newIntl.NumberFormat('ja-JP', style:'currency', currency:'JPY').format(number));// → ¥123,457// limit to three significant digits console.log(newIntl.NumberFormat('en-IN', maximumSignificantDigits:3).format(number));// → 1,23,000
Usando estilo y unidad
console.log(newIntl.NumberFormat('pt-PT', style:'unit', unit:'kilometer-per-hour').format(50));// → 50 km/h console.log((16).toLocaleString('en-GB', style:'unit', unit:'liter', unitDisplay:'long'));// → 16 litres
Polyfill
formatjs Intl.NumberFormat polyfill
Especificaciones
Especificación |
---|
Especificación de la API de internacionalización de ECMAScript (API de internacionalización de ECMAScript) # numberformat-objetos |
Compatibilidad del navegador
Escritorio | Móvil | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Cromo | Borde | Firefox | explorador de Internet | Ópera | Safari | WebView Android | Chrome Android | Firefox para Android | Opera Android | Safari en IOS | Internet de Samsung | |
NumberFormat |
24 | 12 | 29 | 11 | 15 | 10 | 4.4 | 25 | 56 | 14 | 10 | 1,5 |
NumberFormat |
24 | 12 | 29 | 11 | 15 | 10 | 4.4 | 25 | 56 | 14 | 10 | 1,5 |
format |
24 | 12Antes de Edge 18, los números se redondean a 15 dígitos decimales. Por ejemplo, new Intl.NumberFormat('en-US').format(1000000000000005) devoluciones "1,000,000,000,000,010" . |
29 | 11 En Internet Explorer 11, los números se redondean a 15 dígitos decimales. Por ejemplo, new Intl.NumberFormat('en-US').format(1000000000000005) devoluciones "1,000,000,000,000,010" . |
15 | 10 | 4.4 | 25 | 56 | 14 | 10 | 1,5 |
formatToParts |
64 | 12 | 58 | No | 51 | 13 | 64 | 64 | 58 | 47 | 13 | 9.0 |
resolvedOptions |
24 | 12 | 29 | 11 | 15 | 10 | 4.4 | 25 | 56 | 14 | 10 | 1,5 |
supportedLocalesOf |
24 | 12 | 29 | 11 | 15 | 10 | 4.4 | 25 | 56 | 14 | 10 | 1,5 |
Ver también
Intl