GT ClassMethodsFormatting

formatNum

Référence de l’API de la méthode formatNum pour formater les nombres selon les conventions de la locale

Aperçu

La méthode formatNum formate les nombres selon les conventions propres à la locale à l’aide de l’API d’internationalisation. Elle gère automatiquement les séparateurs décimaux, les séparateurs de milliers et les systèmes de numération en fonction de la locale cible.

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

const formatted = gt.formatNum(1234.56, {
  style: 'decimal',
  minimumFractionDigits: 2
});
// Retourne : "1.234,56" (formatage numérique allemand)

Références

Paramètres

NomTypeDescription
numbernumberNombre à formater
options?NumberFormatOptionsConfiguration de formatage facultative

NumberFormatOptions

Étend Intl.NumberFormatOptions avec une spécification de locale supplémentaire :

NomTypeDescription
locales?string | string[]Remplace les locales utilisées pour le formatage (par défaut : locales de l’instance)
style?'decimal' | 'currency' | 'percent' | 'unit'Style de formatage des nombres
currency?stringCode de devise (requis lorsque le style est 'currency')
currencyDisplay?'symbol' | 'narrowSymbol' | 'code' | 'name'Manière d’afficher la devise
currencySign?'standard' | 'accounting'Signe monétaire à utiliser
unit?stringIdentifiant d’unité (requis lorsque le style est 'unit')
unitDisplay?'short' | 'narrow' | 'long'Manière d’afficher l’unité
minimumIntegerDigits?numberNombre minimal de chiffres entiers (1–21)
minimumFractionDigits?numberNombre minimal de décimales (0–20)
maximumFractionDigits?numberNombre maximal de décimales (0–20)
minimumSignificantDigits?numberNombre minimal de chiffres significatifs (1–21)
maximumSignificantDigits?numberNombre maximal de chiffres significatifs (1–21)
useGrouping?boolean | 'always' | 'auto' | 'min2'Utilisation des séparateurs de groupement
notation?'standard' | 'scientific' | 'engineering' | 'compact'Format de notation numérique
compactDisplay?'short' | 'long'Style d’affichage en notation compacte
signDisplay?'auto' | 'never' | 'always' | 'exceptZero'Moment d’affichage du signe
roundingMode?'ceil' | 'floor' | 'expand' | 'trunc' | 'halfCeil' | 'halfFloor' | 'halfExpand' | 'halfTrunc' | 'halfEven'Mode d’arrondi
roundingIncrement?1 | 2 | 5 | 10 | 20 | 25 | 50 | 100Incrément d’arrondi
trailingZeroDisplay?'auto' | 'stripIfInteger'Affichage des zéros finaux

Renvoie

string - Nombre mis en forme selon les conventions de la locale.


Exemples

Mise en forme des nombres (basique)

import { GT } from 'generaltranslation';

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

// Formatage décimal de base
console.log(gt.formatNum(1234.567));
// Sortie : "1,234.567"

// Formatage avec la locale allemande
console.log(gt.formatNum(1234.567, { locales: 'de-DE' }));
// Sortie : "1.234,567"

// Formatage avec la locale française  
console.log(gt.formatNum(1234.567, { locales: 'fr-FR' }));
// Sortie : "1 234,567"

Mise en forme des devises

// Formatage en dollars américains
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'USD'
}));
// Sortie : "$1,234.56"

// Formatage en euros avec locale allemande
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'EUR',
  locales: 'de-DE'
}));
// Sortie : "1.234,56 €"

// Options d'affichage de devise
console.log(gt.formatNum(1234.56, {
  style: 'currency',
  currency: 'USD',
  currencyDisplay: 'code'
}));
// Sortie : "USD 1,234.56"

// Format comptable (parenthèses pour les négatifs)
console.log(gt.formatNum(-1234.56, {
  style: 'currency',
  currency: 'USD',
  currencySign: 'accounting'
}));
// Sortie : "($1,234.56)"

Pourcentages et notation scientifique

// Pourcentage de base
console.log(gt.formatNum(0.1234, { style: 'percent' }));
// Résultat : "12%"

// Pourcentage avec décimales
console.log(gt.formatNum(0.1234, {
  style: 'percent',
  minimumFractionDigits: 1,
  maximumFractionDigits: 2
}));
// Résultat : "12.34%"

// Notation compacte
console.log(gt.formatNum(1234567, { notation: 'compact' }));
// Résultat : "1.2M"

// Notation scientifique
console.log(gt.formatNum(1234567, { notation: 'scientific' }));
// Résultat : "1.235E6"

Notes

  • Le formatage des nombres suit automatiquement les conventions propres à la locale
  • La méthode utilise l’API Intl.NumberFormat native du navigateur pour des performances et une précision optimales
  • Le formatage des monnaies nécessite à la fois style: 'currency' et un code currency valide
  • Le formatage des unités nécessite à la fois style: 'unit' et un identifiant unit valide

Prochaines étapes

  • Consultez la documentation Intl.NumberFormat pour davantage d’options
  • Consultez format-currency pour un formatage spécialisé des devises
  • Consultez format-message pour le formatage des messages avec interpolation de nombres
  • Consultez la fonction autonome format-num pour une utilisation sans instance GT
  • Consultez get-locale-properties pour des informations de formatage propres à la locale

Que pensez-vous de ce guide ?

formatNum