[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString [Back]  [Original]

Number.prototype.toLocaleString() - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

Number.prototype.toLocaleString()

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.

El mtodo toLocaleString() retorna una representacion localizada del nmero en forma de texto

In this article

Prubalo

function eArabic(x) {
  return x.toLocaleString("ar-EG");
}

console.log(eArabic(123456.789));
// Expected output: ""

console.log(eArabic("123456.789"));
// Expected output: "123456.789"

console.log(eArabic(NaN));
// Expected output: " "

Sintaxis

numObj.toLocaleString([locales [, options]])

Parametros

Los argumentos locales y options personalizan el comportamiento de la funcion y permite especificar el lenguaje cuyo formato deber ser utilizado. En implementaciones, que ignoran los argumentos locales y options la localizacin utilizada y la forma del texto retornado es enteramente dependiente de la implementacin.

Mira el constructor Intl.NumberFormat() para ver ms detalles sobre los parmetros y como se utilizan.

Valor de retorno

Un texto con una representacin localizada del nmero dado.

Performance

Cuando formateas una gran cantidad de nmeros, es mejor crear un objeto NumberFormat y utilizar la funcin NumberFormat.format.

Ejemplos

Usando toLocaleString

Un uso bsico sin especificar locales, retorna un texto formateado con el locales y options por defecto.

js
var number = 3500;

console.log(number.toLocaleString()); // Muestra "3,500" si se est utilizando la localizacin U.S. English

Verificando el soporte de los parmetros locales y options

Los parmetros locales y options no son soportados an por todos los navegadores. Para verificar el soporte en ES5.1 y posteriores implementaciones, se puede utilizar el hecho que los tags invlidos en la localizacin son rechazados con una excepcin RangeError:

js
function toLocaleStringSupportsLocales() {
  var number = 0;
  try {
    number.toLocaleString("i");
  } catch (e) {
    return e.name === "RangeError";
  }
  return false;
}

Antes de ES5.1, las implementaciones no requieren devolver una exepcin RangeError cuando toLocaleString es llamado sin argumentos.

Para verificar que funciona todos los navegadores, incluyendo aquellos que soportan ECMA-262, anterior a ES5.1, se puede verificar por las funcionalidades especificadas en ECMA-402 que requieren soportar opciones regionales para Number.prototype.toLocaleString directamente:

js
function toLocaleStringSupportsOptions() {
  return !!(
    typeof Intl == "object" &&
    Intl &&
    typeof Intl.NumberFormat == "function"
  );
}

Esta validacin del objeto global Intl , verificar que no es null (nulo) y que tiene la propiedad NumberFormat que es una funcin.

Utilizando locales

Este ejemplo muestra alguna de las variaciones en los formatos de nmeros localizados. Para obtener el formato de la localizacin utilizada en la interfaz del usuario de tu aplicacin, asegurate de especificar la localizacin (y de ser posible alguna localizacin de respaldo) utilizando el parmetro locales:

js
var number = 123456.789;

// Aleman utiliza comas como separador decimal y puntos miles
console.log(number.toLocaleString("de-DE"));
//  123.456,789

// Arabe en la mayora de pases de habla Arabe utilizan numerales Eastern Arabic
console.log(number.toLocaleString("ar-EG"));
//  

// India utiliza separadores de miles/lakh/crore
console.log(number.toLocaleString("en-IN"));
//  1,23,456.789

// la extensin nu requiere un sistema numerico, e.g. Decimales Chino
console.log(number.toLocaleString("zh-Hans-CN-u-nu-hanidec"));
//  ,.

// cuando solicitas un lenguage que podria no ser soportado, como
// Balinese, incluye un lenguaje de respaldo, en este caso Indonesio
console.log(number.toLocaleString(["ban", "id"]));
//  123.456,789

Utilizando options

El resultado proveido por toLocaleString puede ser personalizado utilizando el parmetro options :

js
var number = 123456.789;

// solicitar un formato de moneda
console.log(
  number.toLocaleString("de-DE", { style: "currency", currency: "EUR" }),
);
//  123.456,79 

// en Japones yen no utiliza una moneda menor
console.log(
  number.toLocaleString("ja-JP", { style: "currency", currency: "JPY" }),
);
//  123,457

// limitar a tres digitos el significante
console.log(number.toLocaleString("en-IN", { maximumSignificantDigits: 3 }));
//  1,23,000

// Utilizar el lenguaje por defecto del host con opciones para el formato del nmero
var num = 30000.65;
console.log(
  num.toLocaleString(undefined, {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2,
  }),
);
//  "30,000.65" donde English es el lenguaje por defecto, o
//  "30.000,65" donde Aleman es el lenguaje por defecto, o
//  "30 000,65" donde French es el lenguaje por defecto

Especificaciones

Specification
ECMAScript 2027 LanguageSpecification
# sec-number.prototype.tolocalestring
ECMAScript 2027 Internationalization API Specification
# sup-number.prototype.tolocalestring

Compatibilidad con navegadores

Ver tambin


Web Proxy Viewer  |  New URL  |  Original Page