GT ClassMethodsFormatting

formatNum

Riferimento API per il metodo formatNum per formattare i numeri in base alle convenzioni locali

Panoramica

Il metodo formatNum formatta i numeri in base alle convenzioni specifiche della lingua/area geografica target utilizzando l'API di Internationalization. Gestisce automaticamente separatori decimali, separatori delle migliaia e sistemi di numerazione in base alla lingua/area geografica di destinazione.

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

const formatted = gt.formatNum(1234.56, {
  style: 'decimal',
  minimumFractionDigits: 2
});
// Restituisce: "1.234,56" (formato numerico tedesco)

Riferimenti

Parametri

NomeTipoDescrizione
numbernumberNumero da formattare
options?NumberFormatOptionsConfigurazione di formattazione facoltativa

NumberFormatOptions

Estende Intl.NumberFormatOptions con un’ulteriore specifica del locale:

NomeTipoDescrizione
locales?string | string[]Sostituisce i locale per la formattazione (predefiniti ai locale dell’istanza)
style?'decimal' | 'currency' | 'percent' | 'unit'Stile di formattazione del numero
currency?stringCodice valuta (obbligatorio quando lo stile è 'currency')
currencyDisplay?'symbol' | 'narrowSymbol' | 'code' | 'name'Modalità di visualizzazione della valuta
currencySign?'standard' | 'accounting'Segno valuta da utilizzare
unit?stringIdentificatore dell’unità (obbligatorio quando lo stile è 'unit')
unitDisplay?'short' | 'narrow' | 'long'Modalità di visualizzazione dell’unità
minimumIntegerDigits?numberNumero minimo di cifre intere (1-21)
minimumFractionDigits?numberNumero minimo di cifre decimali (0-20)
maximumFractionDigits?numberNumero massimo di cifre decimali (0-20)
minimumSignificantDigits?numberNumero minimo di cifre significative (1-21)
maximumSignificantDigits?numberNumero massimo di cifre significative (1-21)
useGrouping?boolean | 'always' | 'auto' | 'min2'Se usare i separatori delle migliaia
notation?'standard' | 'scientific' | 'engineering' | 'compact'Formato di notazione numerica
compactDisplay?'short' | 'long'Stile di visualizzazione della notazione compatta
signDisplay?'auto' | 'never' | 'always' | 'exceptZero'Quando mostrare il segno
roundingMode?'ceil' | 'floor' | 'expand' | 'trunc' | 'halfCeil' | 'halfFloor' | 'halfExpand' | 'halfTrunc' | 'halfEven'Modalità di arrotondamento
roundingIncrement?1 | 2 | 5 | 10 | 20 | 25 | 50 | 100Incremento di arrotondamento
trailingZeroDisplay?'auto' | 'stripIfInteger'Se visualizzare gli zeri finali

Restituisce

string - Il numero formattato secondo le convenzioni locali.


Esempi

Formattazione dei numeri: nozioni di base

import { GT } from 'generaltranslation';

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

// Formattazione decimale di base
console.log(gt.formatNum(1234.567));
// Output: "1,234.567"

// Formattazione per il locale tedesco
console.log(gt.formatNum(1234.567, { locales: 'de-DE' }));
// Output: "1.234,567"

// Formattazione per il locale francese  
console.log(gt.formatNum(1234.567, { locales: 'fr-FR' }));
// Output: "1 234,567"

Formattazione della valuta

// Formattazione in dollari statunitensi
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'USD'
}));
// Output: "$1,234.56"

// Formattazione in euro con impostazione locale tedesca
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'EUR',
  locales: 'de-DE'
}));
// Output: "1.234,56 €"

// Opzioni di visualizzazione della valuta
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'USD',
  currencyDisplay: 'code'
}));
// Output: "USD 1,234.56"

// Formato contabile (parentesi per i valori negativi)
console.log(gt.formatNum(-1234.56, {
  style: 'currency',
  currency: 'USD',
  currencySign: 'accounting'
}));
// Output: "($1,234.56)"

Percentuali e notazione scientifica

// Percentuale semplice
console.log(gt.formatNum(0.1234, { style: 'percent' }));
// Output: "12%"

// Percentuale con decimali
console.log(gt.formatNum(0.1234, {
  style: 'percent',
  minimumFractionDigits: 1,
  maximumFractionDigits: 2
}));
// Output: "12,34%"

// Notazione compatta
console.log(gt.formatNum(1234567, { notation: 'compact' }));
// Output: "1,2 M"

// Notazione scientifica
console.log(gt.formatNum(1234567, { notation: 'scientific' }));
// Output: "1,235E6"

Note

  • La formattazione dei numeri segue automaticamente le convenzioni locali
  • Il metodo utilizza l’Intl.NumberFormat nativo del browser per prestazioni e precisione ottimali
  • La formattazione della valuta richiede sia style: 'currency' sia un codice currency valido
  • La formattazione delle unità richiede sia style: 'unit' sia un identificatore unit valido

Prossimi passaggi

Come valuti questa guida?

formatNum