GT ClassMethodsFormatting

formatNum

Referencia de API del método formatNum para formatear números según las convenciones del locale

Descripción general

El método formatNum formatea números según las convenciones específicas de cada locale utilizando la Internationalization API. Gestiona automáticamente los separadores decimales, los separadores de miles y los sistemas de numeración según el locale de destino.

const gt = new GT({ targetLocale: 'de' });

const formatted = gt.formatNum(1234.56, {
  style: 'decimal',
  minimumFractionDigits: 2
});
// Devuelve: "1.234,56" (formato de números alemán)

Referencias

Parámetros

NameTypeDescription
numbernumberEl número que se va a formatear
options?NumberFormatOptionsConfiguración de formato opcional

NumberFormatOptions

Amplía Intl.NumberFormatOptions con una especificación de locale adicional:

NameTypeDescription
locales?string | string[]Sobrescribe los locales para el formato (por defecto, los locales de la instancia)
style?'decimal' | 'currency' | 'percent' | 'unit'Estilo de formato numérico
currency?stringCódigo de moneda (requerido cuando el estilo es 'currency')
currencyDisplay?'symbol' | 'narrowSymbol' | 'code' | 'name'Cómo mostrar la moneda
currencySign?'standard' | 'accounting'Signo de moneda a utilizar
unit?stringIdentificador de unidad (requerido cuando el estilo es 'unit')
unitDisplay?'short' | 'narrow' | 'long'Cómo mostrar la unidad
minimumIntegerDigits?numberNúmero mínimo de dígitos enteros (1-21)
minimumFractionDigits?numberNúmero mínimo de dígitos decimales (0-20)
maximumFractionDigits?numberNúmero máximo de dígitos decimales (0-20)
minimumSignificantDigits?numberNúmero mínimo de dígitos significativos (1-21)
maximumSignificantDigits?numberNúmero máximo de dígitos significativos (1-21)
useGrouping?boolean | 'always' | 'auto' | 'min2'Si se usan separadores de agrupación
notation?'standard' | 'scientific' | 'engineering' | 'compact'Tipo de notación numérica
compactDisplay?'short' | 'long'Estilo de visualización en notación compacta
signDisplay?'auto' | 'never' | 'always' | 'exceptZero'Cuándo mostrar el signo
roundingMode?'ceil' | 'floor' | 'expand' | 'trunc' | 'halfCeil' | 'halfFloor' | 'halfExpand' | 'halfTrunc' | 'halfEven'Modo de redondeo
roundingIncrement?1 | 2 | 5 | 10 | 20 | 25 | 50 | 100Incremento de redondeo
trailingZeroDisplay?'auto' | 'stripIfInteger'Si se muestran ceros finales

Devuelve

string - El número con formato según las convenciones del locale.


Ejemplos

Formato básico de números

import { GT } from 'generaltranslation';

const gt = new GT({ targetLocale: 'en-US' });

// Formato decimal básico
console.log(gt.formatNum(1234.567));
// Resultado: "1,234.567"

// Formato de configuración regional alemana
console.log(gt.formatNum(1234.567, { locales: 'de-DE' }));
// Resultado: "1.234,567"

// Formato de configuración regional francesa  
console.log(gt.formatNum(1234.567, { locales: 'fr-FR' }));
// Resultado: "1 234,567"

Formateo de moneda

// Formato de dólar estadounidense
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'USD'
}));
// Resultado: "$1,234.56"

// Formato de euro con locale alemán
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'EUR',
  locales: 'de-DE'
}));
// Resultado: "1.234,56 €"

// options de visualización de moneda
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'USD',
  currencyDisplay: 'code'
}));
// Resultado: "USD 1,234.56"

// Formato contable (paréntesis para negativos)
console.log(gt.formatNum(-1234.56, {
  style: 'currency',
  currency: 'USD',
  currencySign: 'accounting'
}));
// Resultado: "($1,234.56)"

Porcentajes y notación científica

// Porcentaje básico
console.log(gt.formatNum(0.1234, { style: 'percent' }));
// Resultado: "12%"

// Porcentaje con decimales
console.log(gt.formatNum(0.1234, {
  style: 'percent',
  minimumFractionDigits: 1,
  maximumFractionDigits: 2
}));
// Resultado: "12.34%"

// Notación compacta
console.log(gt.formatNum(1234567, { notation: 'compact' }));
// Resultado: "1.2M"

// Notación científica
console.log(gt.formatNum(1234567, { notation: 'scientific' }));
// Resultado: "1.235E6"

Notas

  • El formato numérico sigue automáticamente las convenciones específicas del locale
  • El método utiliza la API nativa del navegador Intl.NumberFormat para un rendimiento y una precisión óptimos
  • El formato de moneda requiere tanto style: 'currency' como un código de currency válido
  • El formato de unidad requiere tanto style: 'unit' como un identificador de unit válido

Próximos pasos

¿Qué te parece esta guía?