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
| Name | Type | Description |
|---|---|---|
number | number | El número que se va a formatear |
options? | NumberFormatOptions | Configuración de formato opcional |
NumberFormatOptions
Amplía Intl.NumberFormatOptions con una especificación de locale adicional:
| Name | Type | Description |
|---|---|---|
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? | string | Có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? | string | Identificador de unidad (requerido cuando el estilo es 'unit') |
unitDisplay? | 'short' | 'narrow' | 'long' | Cómo mostrar la unidad |
minimumIntegerDigits? | number | Número mínimo de dígitos enteros (1-21) |
minimumFractionDigits? | number | Número mínimo de dígitos decimales (0-20) |
maximumFractionDigits? | number | Número máximo de dígitos decimales (0-20) |
minimumSignificantDigits? | number | Número mínimo de dígitos significativos (1-21) |
maximumSignificantDigits? | number | Nú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 | 100 | Incremento 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.NumberFormatpara un rendimiento y una precisión óptimos - El formato de moneda requiere tanto
style: 'currency'como un código decurrencyválido - El formato de unidad requiere tanto
style: 'unit'como un identificador deunitválido
Próximos pasos
- Consulta la documentación de
Intl.NumberFormatpara más options - Consulta
format-currencypara un formateo especializado de moneda - Consulta
format-messagepara el formateo de mensajes con interpolación de números - Consulta la función independiente
format-numpara usar sin una instancia de GT - Consulta
get-locale-propertiespara información de formateo específica del locale
¿Qué te parece esta guía?