Cadenas numéricas locales

Number puede convertir una cantidad numérica a cadena en distintas bases de numeración mediante su propio método toString(), es una conversión puramente matemática. O mediante las notaciones matemáticas. Pero hay más opciones.

El método toLocaleString() sobreescribe el método global de Object y permite especificar con mucho detalle la configuración regional en la tranfromación de números a cadenas.

Este método no admite el uso de bases de numeración, es menos matemático y más enfocado a la representación en forma de texto.

Si se invoca sin parámetros utiliza la configuración que indique el explorador.

Posee dos parámetros opcionales

  • Código regional que define el juego de caracteres y particularidades del idioma
  • Opciones características que se aplican al código regional elegido

El código regional más simple es similar al usado en HTML, la pareja de idioma-región como es-ES, en-US y similares. Puedes visitar la W3.org para una buena guía sobre este sistema de regionalización.

Además del código de idioma el método acepta un objeto como argumento con toda una colección de opciones de idioma. Estas opciones se pasan en forma de objeto con pares opción:valor. A modo de pequeña guia aquí tienes un resumen:

  • currency: código monetario ISO 4217
  • currencyDisplay: simbolo de moneda symbol, narrowSymbol, code, name
  • currencySign: signo accounting,, standard
  • localeMatcher: algoritomo de configuracion: lookup, bestfit
  • notation: notación usada standard, scientific, engineering, compact
  • compactDisplay: para notation compact: short o long
  • numberingSystem: .Sistema de nuemración: "arab", "arabext", " bali", "beng", "deva", "fullwide", " gujr", "guru", "hanidec", "khmr", " knda", "laoo", "latn", "limb", "mlym", " mong", "mymr", "orya", "tamldec", " telu", "thai", "tibt".
  • signDisplay: mostar signo auto, never, always, exceptZero
  • style: tipo de número : currency, percent, unit
  • unit: unidad en unit style. (UTS #35, Part 2, Section 6.)
  • unitDisplay: formato de unidad: short, long, narrow.
  • useGrouping: agrupar separadores: true, false
  • minimumIntegerDigits: longitud mínima, de 1 a 21
  • minimumFractionDigits: número mínimo de decimales, 0 a 20
  • maximumFractionDigits: número máximo de decimales, 0-20
  • minimumSignificantDigits: número mínimo de dígitos significativos
  • maximumSignificantDigits: número máximo de dígitos significativos

Y ahora un ejemplo de lo más cotidiano para que veas como se usan estas opciones:

var numero = 145.45;

var cadena, opc;

console.log(numero.toLocaleString("en-EN") )    //"145.45"

console.log(numero.toLocaleString("es-ES") )   //"145,45"

opc = {style:'currency', currency: "EUR", currencyDisplay: 'name'};

cadena = numero.toLocaleString("es-ES", opc) ;

console.log(cadena);

Este método con estas opciones puede ahorrarte algún trabajo al representar valores numéricos en un página o en scripts que se usen en aplicaciones comerciales o numéricas en general.