Intl.NumberFormat

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.

* Some parts of this feature may have varying levels of support.

El objecto Intl.NumberFormat habilita el formato numérico de acuerdo al lenguaje.

Pruébalo

const number = 123456.789;

console.log(
  new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
    number,
  ),
);
// Expected output: "123.456,79 €"

// The Japanese yen doesn't use a minor unit
console.log(
  new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
    number,
  ),
);
// Expected output: "¥123,457"

// Limit to three significant digits
console.log(
  new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
    number,
  ),
);
// Expected output: "1,23,000"

Constructor

Intl.NumberFormat()

Crea un nuevo objecto NumberFormat.

Métodos estaticos

Intl.NumberFormat.supportedLocalesOf()

Regresa un arreglo con idiomas soportados sin necesidad de recurrir a la configuración por defecto en el entorno de ejecución.

Métodos de instancia

Intl.NumberFormat.prototype.format()

Función de acceso que formatea un número de acuerdo al lenguaje y a las opciones de formato de este objeto Intl.NumberFormat.

Intl.NumberFormat.prototype.formatToParts()

Devuelve un Array de objetos que representan la cadena de números en partes que se pueden usar para el formato personalizado que reconoce la configuración regional.

Intl.NumberFormat.prototype.formatRange()

Función de acceso que formatea un rango de números de acuerdo a la configuración region y a las opciones de formato del objeto Intl.NumberFormat desde el que se llama al método.

Intl.NumberFormat.prototype.formatRangeToParts()

Devuelve un Array de objetos que representan el rango de cadenas de números en partes que se pueden usar para el formato personalizado que reconoce la configuración regional.

Intl.NumberFormat.prototype.resolvedOptions()

Devuelve un nuevo objeto con propiedades que reflejan la configuración regional y las opciones de intercalación calculadas durante la inicialización del objeto.

Ejemplo

Uso básico

En el uso básico sin especificar una configuración regional, se devuelve una cadena formateada en la configuración regional predeterminada y con opciones predeterminadas.

js
var number = 3500;

console.log(new Intl.NumberFormat().format(number));
// → '3,500' si está en la region de Estados Unidos

Utilizando la configuración regional

Este ejemplo muestra algunas de las variaciones en los formatos de números por región. Para obtener el formato del idioma usado en la interfaz de usuario de tu aplicación, asegúrate de especificar dicho idioma (y de ser posible alternativas) utilizando el argumento locales:

js
var number = 123456.789;

// En el alemán la coma se utiliza como separador decimal y el punto para los millares
console.log(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
console.log(new Intl.NumberFormat("ar-EG").format(number));
// → ١٢٣٤٥٦٫٧٨٩

// En la India se utilizan separadores millares/lakh/crore
console.log(new Intl.NumberFormat("en-IN").format(number));
// → 1,23,456.789

// La clave de extensión nu requiere un sistema de numeración, p.ej. el decimal chino
console.log(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
console.log(new Intl.NumberFormat(["ban", "id"]).format(number));
// → 123.456,789

Usando opciones

Los resultados se pueden personalizar usando el argumento opciones:

js
var number = 123456.789;

// Se establece un formato de divisa
console.log(
  new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
    number,
  ),
);
// → 123.456,79 €

// El yen japonés no tiene ninguna unidad menor
console.log(
  new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
    number,
  ),
);
// → ¥123,457

// Limitamos a tres los dígitos significativos
console.log(
  new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
    number,
  ),
);
// → 1,23,000

Usando estilos y unidades

js
console.log(
  new Intl.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 litros

Polyfill

Especificaciones

Specification
ECMAScript® 2025 Internationalization API Specification
# numberformat-objects

Compatibilidad con navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
NumberFormat
NumberFormat() constructor
Supports normative optional ChainNumberFormat behavior
locales parameter
options parameter
options.compactDisplay parameter
options.currencyDisplay parameter
options.currencySign parameter
options.currency parameter
options.localeMatcher parameter
options.maximumFractionDigits parameter
options.maximumSignificantDigits parameter
options.minimumFractionDigits parameter
options.minimumIntegerDigits parameter
options.minimumSignificantDigits parameter
options.notation parameter
options.numberingSystem parameter
options.roundingIncrement parameter
options.roundingMode parameter
options.roundingPriority parameter
options.signDisplay parameter
negative value
options.style parameter
options.trailingZeroDisplay parameter
options.unitDisplay parameter
options.unit parameter
options.useGrouping parameter
options.useGrouping parameter accepts: 'always', 'auto', 'min2' (in addition to: true and false)
format
number param string value is decimal (not Number)
formatRange
formatRangeToParts
formatToParts
resolvedOptions
supportedLocalesOf

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
See implementation notes.
Has more compatibility info.

Véase también