# General Translation Platform: formatNum URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/formatting/format-num.mdx --- title: formatNum 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. Amplía `Intl.NumberFormatOptions` con un campo `locales` adicional: | Nombre | Descripción | Tipo | Opcional | Predeterminado | | -------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------- | | `locales` | Anula las configuraciones regionales para el formato. | `string \| string[]` | Sí | configuración regional de destino de la instancia | | `style` | Estilo de formato numérico. | `'decimal' \| 'currency' \| 'percent' \| 'unit'` | Sí | `'decimal'` | | `currency` | Código de moneda (obligatorio cuando `style` es `'currency'`). | `string` | Sí | — | | `currencyDisplay` | Cómo mostrar la moneda. | `'symbol' \| 'narrowSymbol' \| 'code' \| 'name'` | Sí | `'symbol'` | | `currencySign` | Signo de moneda 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–20). | `number` | Sí | — | | `maximumFractionDigits` | Número máximo de dígitos fraccionarios (0–20). | `number` | Sí | — | | `minimumSignificantDigits` | Número mínimo de dígitos significativos (1–21). | `number` | Sí | — | | `maximumSignificantDigits` | Número máximo de dígitos significativos (1–21). | `number` | Sí | — | | `useGrouping` | Indica si se deben usar separadores de agrupación. | `boolean \| 'always' \| 'auto' \| 'min2'` | Sí | `'auto'` | | `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'` | | `signDisplay` | Cuándo mostrar el signo. | `'auto' \| 'never' \| 'always' \| 'exceptZero'` | Sí | `'auto'` | | `roundingMode` | Modo de redondeo. | `'ceil' \| 'floor' \| 'expand' \| 'trunc' \| 'halfCeil' \| 'halfFloor' \| 'halfExpand' \| 'halfTrunc' \| 'halfEven'` | Sí | `'halfExpand'` | | `roundingIncrement` | Incremento de redondeo. | `1 \| 2 \| 5 \| 10 \| 20 \| 25 \| 50 \| 100` | Sí | `1` | | `trailingZeroDisplay` | Indica si se deben mostrar los ceros finales. | `'auto' \| 'stripIfInteger'` | Sí | `'auto'` | ## 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.