Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.
Resumen
El objeto Intl.NumberFormat
es un constructor para objetos que permiten un formato numérico sensible al idioma.
Sintaxis
new Intl.NumberFormat([locales [, options]])
Intl.NumberFormat
.call(this [, locales [, options]])
Parámetros
-
locales
-
Cadena o arreglo de cadenas identificadoras para el código de idioma, conforme a BCP 47. Para mayor información con respecto a la forma e interpretación del argumento
locales
, visite el siguiente enlace: página de Intl. Se admite la siguiente clave de extension Unicode:- nu
- El sistema numérico a ser utilizado. Los siguientes son valores admisibles: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
-
options
-
Objeto con alguna o todas las propiedas listadas a continuación:
-
localeMatcher
- Algoritmo a emplear para establecer el idioma. Los valores admitidos son "lookup" (coincidencia exacta) y "best fit" (mejor coincidencia); el valor por defecto es "best fit". Para mayor información respecto a esta opción visite el siguiente enlace: página de Intl.
-
style
- El estilo de formato a utilizar. Los valores admisibles son "decimal" para un formato numérico simple, "currency" para un formato de divisa, y "percent" para un formato porcentual; el valor por defecto es "decimal".
-
currency
-
La divisa a utilizar para el formato de divisa. Los valores admisibles son los establecidos en ISO 4217, por ejemplo "USD" para el dólar americano, "EUR" para el euro, o "CNY" para el RMB chino - para mayor información se recomienda visitar el siguiente enlace: lista actual de códigos de divisa y fondos. No existe un valor por defecto, por lo que si es valor del parámetro
style
es "currency", deberá proveerse también un valor para la propiedadcurrency
. -
currencyDisplay
- Descriptor a utilizar para denotar el valor expresado como divisa. Los valores admisibles son "symbol" para utilizar el símbolo local a su contexto, por ejemplo €, "code" para utilizar el código de divisa ISO, "name" para utilizar el nombre local de la divisa, por ejemplo "dollar"; el valor por defecto es "symbol".
-
useGrouping
-
Si deberán emplearse o no separadores para agrupamiento, como es el caso de los separadores para millares o separadores millares/lakh/crore. Los valores admisibles son
true
yfalse
; el valor por defecto estrue
.
Las propiedades descritas a continuación se dividen en dos grupos: por un lado
minimumIntegerDigits
,minimumFractionDigits
ymaximumFractionDigits
, por el otrominimumSignificantDigits
ymaximumSignificantDigits
. Si al menos una propiedad del segundo grupo es definida, todas aquellas del primero serán ignoradas.-
minimumIntegerDigits
- El número mínimo de digitos enteros a utilizar. El rango de valores admisibles va desde 1 hasta 21; el valor por defecto es 1.
-
minimumFractionDigits
- El número mínimo de digitos fraccionarios a utilizar. El rango de valores admisibles va desde 0 hasta 20; el valor por defecto para formato simple y porcentual es 0; el valor por defecto para formato de divisa es el indicado en la lista de códigos de moneda ISO 4217 para subdivisiones de tal divisa (o 2 si la lista no establece un valor).
-
maximumFractionDigits
-
El número máximo de dígitos de fraccionarios a utilizar. El rango de valores admisibles va desde 0 hasta 20; el valor por defecto para formato simple es el valor más alto admisible en
minimumFractionDigits
y 3; el valor por defecto para el formato de moneda es el valor más alto admisible enminimumFractionDigits
y el indicado en la lista de cógidos de moneda ISO 4217 para subdivisiones de tal divisa (o 2 si la lista no establece un valor); el valor por defecto en el formato porcentual es el valor más alto admisible enminimumFractionDigits
y 0. -
minimumSignificantDigits
- El número mínimo de dígitos significativos a utilizar. El rango de valores admisibles va desde 1 hasta 21; el valor por defecto es 1.
-
maximumSignificantDigits
-
El número máximo de dígitos significativos a utilizar. El rango de valores admisibles va desde 1 hasta 21; el valor por defecto es
minimumSignificantDigits
.
-
Descripción
Propiedades
-
Intl.NumberFormat.prototype
- Permite agregar nuevas propiedades a todos los objetos.
Métodos
-
Intl.NumberFormat.supportedLocalesOf()
- Regresa un arreglo con aquellos códigos de idioma proveídos y que son soportados sin necesidad de recurrir a la configuración por defecto en el entorno de ejecucion.
Instancias NumberFormat
Propiedades
Toda instancia de NumberFormat
hereda las siguientes propiedades de su prototipo:
-
Intl.NumberFormat.prototype.constructor
-
A reference to
Intl.NumberFormat
. -
Intl.NumberFormat.prototype.format
-
Getter; returns a function that formats a number according to the locale and formatting options of this
NumberFormat
object.
Métodos
Toda instancia de NumberFormat
hereda los siguientes métodos de su prototipo:
-
Intl.NumberFormat.prototype.resolvedOptions()
- Returns a new object with properties reflecting the locale and collation options computed during initialization of the object.
Ejemplos
Al no especificar un código de idioma, se regresa una cadena con el formato correspondiente al código de idioma y opciones disponibles por defecto en el entorno de ejecución.
var number = 3500; alert(new Intl.NumberFormat().format(number)); // → "3,500" si el código de idioma es US English
Ejemplo: Utilizando locales
Este ejemplo muestra algunas de las variantes en formato numérico con diferentes contextos locales. A fin de emplear el idioma correspondiente a aquél en la interfaz del usuario para su aplicación, asegúrese de especificar dicho idioma ( y de ser posible alternativas) utilizando el argumento locales
:
var number = 123456.789; // En el alemán la coma se utiliza como separador decimal y el punto para los millares alert(new Intl.NumberFormat("de-DE").format(number)); // → 123.456,789 // En la mayoría de los países de lengua arábiga se utilizan también símbolos arábigos alert(new Intl.NumberFormat("ar-EG").format(number)); // → ١٢٣٤٥٦٫٧٨٩ // En la India se utilizan separadores millares/lakh/crore alert(new Intl.NumberFormat("en-IN").format(number)); // → 1,23,456.789 // use de nu para establecer un sistema numérico, el sistema decimal chino por ejemplo alert(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number)); // → 一二三,四五六.七八九 // cuando se requiera un lenguaje que pudiera no ser soportado, como es el caso del Balinés // se recomienda incluir un lenguaje alternativo, en éste caso Indonesio alert(new Intl.NumberFormat(["ban", "id"]).format(number)); // → 123.456,789
Ejemplo: Utilizando options
El valor que regresa la función toLocaleString
puede ser modificado utilizando el argumento options
:
var number = 123456.789; // se establece un formato de divisa alert(new Intl.NumberFormat("de-DE", {style: "currency", currency: "EUR"}).format(number)); // → 123.456,79 € // el yen japonés no tiene ninguna subdivisión alert(new Intl.NumberFormat("ja-JP", {style: "currency", currency: "JPY"}).format(number)) // → ¥123,457 // limitamos a tres los dígitos significativos alert(new Intl.NumberFormat("en-IN", {maximumSignificantDigits: 3}).format(number)); // → 1,23,000
Especificaciones
Especificación | Estado actual | Comentarios |
---|---|---|
ECMAScript Internationalization API 1.0 (ECMA-402) The definition of 'Intl.NumberFormat' in that specification. |
Standard | Definición inicial. |
Compatibilidad en navegadores
Prestación | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Soporte básico | 24 | 29 (29) | 11 | 15 | Not supported |
Prestación | Android | Chrome para Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Soporte básico | Not supported | 26 | Not supported bug 864843 |
Not supported | Not supported | Not supported |