# General Translation Platform: formatNum
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/formatting/format-num.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Da formato a números, Currency, porcentajes y valores numéricos según la configuración regional. Referencia de la API de formatNum.

Da formato a un número según las convenciones específicas de la configuración regional en una instancia de [GT](/docs/platform/core/reference/gt-class/constructor). General Translation usa la API integrada `Intl.NumberFormat` para gestionar automáticamente los separadores decimales, los separadores de agrupación y los sistemas de numeración de la configuración regional de destino.

## Descripción general [#overview]

Llama a `formatNum` en una instancia de [`GT`](/docs/platform/core/reference/gt-class/constructor) con el número que quieres formatear y, de forma opcional, un objeto de opciones. Devuelve el número formateado como una cadena.

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

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

Firma:

```typescript
formatNum(
  number: number,
  options?: { locales?: string | string[] } & Intl.NumberFormatOptions
): string
```

*Nota: `formatNum` se ejecuta localmente con `Intl.NumberFormat` y no requiere una clave de API. De forma predeterminada, aplica el formato según la configuración regional de destino de la instancia; si no está disponible, usa la configuración regional de origen y luego la predeterminada de la biblioteca (`en`). Pasa `locales` para sobrescribirlo. Para aplicar formato sin una instancia de `GT`, consulta la versión independiente de [`formatNum`](/docs/platform/core/reference/utility-functions/formatting/format-num).*

## Cómo funciona [#how-it-works]

* **Resolución de la configuración regional.** De forma predeterminada, el método formatea según la configuración regional de destino de la instancia; si no está disponible, recurre a la configuración regional de origen y luego a la predeterminada de la biblioteca (`en`), no a la lista de configuración `locales`. Pasa `locales` en las opciones para anularlo en una sola llamada.
* **Basado en Intl.** El formato se delega en [`Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat), nativo del navegador, por lo que se admiten todas las `Intl.NumberFormatOptions` estándar y las convenciones de la configuración regional se aplican automáticamente.
* **Requisitos de estilo.** El formato de moneda requiere tanto `style: 'currency'` como un código `currency` válido. El formato de unidad requiere tanto `style: 'unit'` como un identificador `unit` válido.

## Parámetros [#parameters]

| Parámetro             | Descripción                                                                                        | Tipo     | Opcional | Por defecto |
| --------------------- | -------------------------------------------------------------------------------------------------- | -------- | -------- | ----------- |
| [`number`](#number)   | El número que se va a formatear.                                                                   | `number` | No       | —           |
| [`options`](#options) | Configuración de formato que amplía `Intl.NumberFormatOptions` con una sobrescritura de `locales`. | `object` | Sí       | —           |

### `number` [#number]

**Tipo** `number` · **Obligatorio**

El número que se va a formatear.

### `options` [#options]

**Tipo** `{ locales?: string | string[] } & Intl.NumberFormatOptions` · **Opcional**

Configuración de formato. La tabla enumera las opciones comunes expuestas por los tipos Core publicados y sus valores predeterminados efectivos en Core. (Consulta las [opciones del constructor `Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options) para obtener detalles complementarios sobre el estándar y específicos del entorno de ejecución).

| Nombre                     | Descripción                                                                                                                                                                                                                                                   | Tipo                                                                                                                 | Opcional | Predeterminado                                                                                                                     |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `locales`                  | Anula las configuraciones regionales para el formato.                                                                                                                                                                                                         | `string \| string[]`                                                                                                 | Sí       | `targetLocale` → `sourceLocale` → `en`                                                                                             |
| `localeMatcher`            | Algoritmo de coincidencia de configuraciones regionales.                                                                                                                                                                                                      | `'lookup' \| 'best fit'`                                                                                             | Sí       | `'best fit'`                                                                                                                       |
| `numberingSystem`          | Sistema de numeración, como `latn` o `arab`.                                                                                                                                                                                                                  | `string`                                                                                                             | Sí       | `'latn'`                                                                                                                           |
| `style`                    | Estilo de formato numérico.                                                                                                                                                                                                                                   | `'decimal' \| 'currency' \| 'percent' \| 'unit'`                                                                     | Sí       | `'decimal'`                                                                                                                        |
| `currency`                 | Código de divisa ISO 4217 (obligatorio cuando `style` es `'currency'`).                                                                                                                                                                                      | `string`                                                                                                             | Sí       | —                                                                                                                                  |
| `currencyDisplay`          | Cómo mostrar la Currency.                                                                                                                                                                                                                                     | `'symbol' \| 'narrowSymbol' \| 'code' \| 'name'`                                                                     | Sí       | `'symbol'`                                                                                                                         |
| `currencySign`             | Signo de Currency que se debe usar.                                                                                                                                                                                                                           | `'standard' \| 'accounting'`                                                                                         | Sí       | `'standard'`                                                                                                                       |
| `unit`                     | Identificador de unidad (obligatorio cuando `style` es `'unit'`).                                                                                                                                                                                             | `string`                                                                                                             | Sí       | —                                                                                                                                  |
| `unitDisplay`              | Cómo mostrar la unidad.                                                                                                                                                                                                                                       | `'short' \| 'narrow' \| 'long'`                                                                                      | Sí       | `'short'`                                                                                                                          |
| `minimumIntegerDigits`     | Número mínimo de dígitos enteros (1–21).                                                                                                                                                                                                                      | `number`                                                                                                             | Sí       | `1`                                                                                                                                |
| `minimumFractionDigits`    | Número mínimo de dígitos fraccionarios (0–100). El estilo afecta al valor predeterminado.                                                                                                                                                                     | `number`                                                                                                             | Sí       | `0` para decimal/porcentaje; dígitos de unidad menor de la Currency para Currency; `0` con valores predeterminados compactos       |
| `maximumFractionDigits`    | Número máximo de dígitos fraccionarios (0–100). El estilo y el mínimo afectan al valor predeterminado.                                                                                                                                                        | `number`                                                                                                             | Sí       | `3` para decimal; `0` para porcentaje; dígitos de unidad menor de la Currency para Currency; `0` con valores predeterminados compactos |
| `minimumSignificantDigits` | Número mínimo de dígitos significativos (1–21), cuando el redondeo de dígitos significativos está activo.                                                                                                                                                     | `number`                                                                                                             | Sí       | `1`                                                                                                                                |
| `maximumSignificantDigits` | Número máximo de dígitos significativos (1–21), cuando el redondeo de dígitos significativos está activo.                                                                                                                                                     | `number`                                                                                                             | Sí       | `21`; `2` con valores predeterminados compactos                                                                                    |
| `roundingPriority`         | Cómo interactúan los ajustes de dígitos fraccionarios y significativos.                                                                                                                                                                                       | `'auto' \| 'morePrecision' \| 'lessPrecision'`                                                                       | Sí       | `'auto'`; `'morePrecision'` con valores predeterminados compactos                                                                  |
| `notation`                 | Formato de notación numérica.                                                                                                                                                                                                                                 | `'standard' \| 'scientific' \| 'engineering' \| 'compact'`                                                           | Sí       | `'standard'`                                                                                                                       |
| `compactDisplay`           | Estilo de visualización de la notación compacta.                                                                                                                                                                                                              | `'short' \| 'long'`                                                                                                  | Sí       | `'short'`                                                                                                                          |
| `useGrouping`              | Indica si se deben usar separadores de agrupación y cuándo.                                                                                                                                                                                                   | `boolean \| 'always' \| 'auto' \| 'min2'`                                                                            | Sí       | `'auto'`; `'min2'` con notación compacta                                                                                           |
| `signDisplay`              | Cuándo mostrar el signo.                                                                                                                                                                                                                                      | `'auto' \| 'never' \| 'always' \| 'exceptZero' \| 'negative'`                                                        | Sí       | `'auto'`                                                                                                                           |
| `roundingMode`             | Modo de redondeo.                                                                                                                                                                                                                                             | `'ceil' \| 'floor' \| 'expand' \| 'trunc' \| 'halfCeil' \| 'halfFloor' \| 'halfExpand' \| 'halfTrunc' \| 'halfEven'` | Sí       | `'halfExpand'`                                                                                                                     |
| `roundingIncrement`        | Incremento de redondeo. Los valores no predeterminados requieren que los dígitos fraccionarios mínimos y máximos efectivos sean iguales y no se pueden combinar con el redondeo de dígitos significativos ni con una `roundingPriority` distinta de `'auto'`. | `1 \| 2 \| 5 \| 10 \| 20 \| 25 \| 50 \| 100 \| 200 \| 250 \| 500 \| 1000 \| 2000 \| 2500 \| 5000`                    | Sí       | `1`                                                                                                                                |
| `trailingZeroDisplay`      | Indica si se deben mostrar los ceros finales.                                                                                                                                                                                                                 | `'auto' \| 'stripIfInteger'`                                                                                         | Sí       | `'auto'`                                                                                                                           |

Cuando se establece `notation: 'compact'` sin ninguna opción de dígitos fraccionarios o significativos, los valores predeterminados efectivos son `minimumFractionDigits: 0`, `maximumFractionDigits: 0`, `minimumSignificantDigits: 1` y `maximumSignificantDigits: 2`. En ese caso, `roundingPriority` toma de forma predeterminada el valor `'morePrecision'` y `useGrouping`, el valor `'min2'`.

## Devuelve [#returns]

**Tipo** `string`

El número con formato, de acuerdo con las convenciones de la configuración regional de destino.

## Ejemplos [#examples]

```typescript
import { GT } from 'generaltranslation';

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

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

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

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

```typescript
// Formato de moneda

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

// Formato de euro con configuración regional alemana
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'EUR',
  locales: 'de-DE',
}));
// Salida: "1.234,56 €"

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

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

```typescript
// Porcentaje y notación científica

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

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

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

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

## Notas [#notes]

* El formato de números sigue automáticamente las convenciones propias de la configuración regional.
* El método usa `Intl.NumberFormat`, nativo del navegador, para ofrecer rendimiento y precisión.
* El formato de moneda requiere tanto `style: 'currency'` como un código `currency` válido.
* El formato de unidad requiere tanto `style: 'unit'` como un identificador `unit` válido.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
