GT ClassMethodsFormatting

formatNum

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

Descripción general

El método formatNum da formato a los números según las convenciones específicas de la locale usando la API de Internacionalización. Gestiona automáticamente los separadores decimales, los separadores de miles y los sistemas de numeración en función de la locale de destino.

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

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

Referencias

Parámetros

NombreTipoDescripción
numbernumberNúmero que se va a formatear
options?NumberFormatOptionsConfiguración opcional de formato

NumberFormatOptions

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

NombreTipoDescripción
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 (obligatorio cuando style es 'currency')
currencyDisplay?'symbol' | 'narrowSymbol' | 'code' | 'name'Cómo mostrar la moneda
currencySign?'standard' | 'accounting'Signo de moneda que se usará
unit?stringIdentificador de unidad (obligatorio cuando style 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 fraccionarios (0‑20)
maximumFractionDigits?numberNúmero máximo de dígitos fraccionarios (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'Formato de notación numérica
compactDisplay?'short' | 'long'Estilo de visualización de la 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 los ceros finales

Devuelve

string - El número formateado según las convenciones de la 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 para la configuración regional alemana
console.log(gt.formatNum(1234.567, { locales: 'de-DE' }));
// Resultado: "1.234,567"

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

Formato 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 €"

// Opciones de visualización de la 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 de números 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 currency válido
  • El formato de unidades requiere tanto style: 'unit' como un identificador unit válido

Próximos pasos

¿Qué te ha parecido esta guía?

formatNum