(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Les programmes stockent et manipulent des nombres en utilisant une représentation locale, binaire et indépendante. Lors de l'affichage d'un nombre, il est converti en une version particulière. Par exemple, un nombre tel que 12345.67 s'écrit "12,345.67" aux USA, "12 345,67" en France et "12.345,67" en Allemagne.
En appelant les méthodes fournies par NumberFormatter, vous pouvez formater les nombres, les montants de devises et les pourcentages, en fonctions des conventions locales. NumberFormatter prend en compte les conventions, ce qui fait que vous devez créer un nouvel objet NumberFormatter, pour chaque convention. Les méthodes de NumberFormatter, formatent des types primitifs comme des nombres décimaux, et produit une chaîne de caractères.
Pour les monnaies, vous pouvez utiliser le format monétaire pour créer un formateur qui retourne une chaîne, avec le symbole de devise approprié. Bien entendu, NumberFormatter ne connait pas les taux de changes, ce qui fait que l'affichage sera fait, quelqu'en soit la devise demandée. Cela signifie que le même nombre aura différentes valeurs monétaires en fonction de la configuration locale. Par exemple, le nombre 9988776.65 s'affichera :
Pour formater des pourcentages, vous devez créer un formateur local, avec un type de format pourcentage. Avec ce formateur, une fraction décimale telle que 0.75 sera affichée 75%.
Pour des formatages plus complexes, comme des nombres écrits littéralement, des formateurs à règles sont utilisés.
$string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|falseCes styles sont utilisés par numfmt_create() pour définir le type de formatteur.
NumberFormatter::PATTERN_DECIMAL
     NumberFormatter::DECIMAL
     NumberFormatter::CURRENCY
     NumberFormatter::PERCENT
     NumberFormatter::SCIENTIFIC
     NumberFormatter::SPELLOUT
     NumberFormatter::ORDINAL
     NumberFormatter::DURATION
     NumberFormatter::PATTERN_RULEBASED
     NumberFormatter::CURRENCY_ACCOUNTING
     ($3.00) pour un montant de devise négatif au lieu de
       -$3.00. Disponible à partir de PHP 7.4.1 et ICU 53.
      
     NumberFormatter::DEFAULT_STYLE
     NumberFormatter::IGNORE
     Ces constantes définissent la méthode d'analyse et de formattage des nombres. Ils doivent être utilisés comme arguments des fonctions numfmt_format() et numfmt_parse().
NumberFormatter::TYPE_DEFAULT
     NumberFormatter::TYPE_INT32
     NumberFormatter::TYPE_INT64
     NumberFormatter::TYPE_DOUBLE
     NumberFormatter::TYPE_CURRENCY
     Attributs de formats de nombre utilisés par numfmt_get_attribute() et numfmt_set_attribute().
NumberFormatter::PARSE_INT_ONLY
     NumberFormatter::GROUPING_USED
     NumberFormatter::DECIMAL_ALWAYS_SHOWN
     NumberFormatter::MAX_INTEGER_DIGITS
     NumberFormatter::MIN_INTEGER_DIGITS
     NumberFormatter::INTEGER_DIGITS
     NumberFormatter::MAX_FRACTION_DIGITS
     NumberFormatter::MIN_FRACTION_DIGITS
     NumberFormatter::FRACTION_DIGITS
     NumberFormatter::MULTIPLIER
     NumberFormatter::GROUPING_SIZE
     NumberFormatter::ROUNDING_MODE
     NumberFormatter::ROUNDING_INCREMENT
     NumberFormatter::FORMAT_WIDTH
     NumberFormatter::PADDING_POSITION
     NumberFormatter::SECONDARY_GROUPING_SIZE
     NumberFormatter::SIGNIFICANT_DIGITS_USED
     NumberFormatter::MIN_SIGNIFICANT_DIGITS
     NumberFormatter::MAX_SIGNIFICANT_DIGITS
     NumberFormatter::LENIENT_PARSE
     Attributs de texte pour les formats de nombres, utilisés par numfmt_get_text_attribute() et numfmt_set_text_attribute().
NumberFormatter::POSITIVE_PREFIX
     NumberFormatter::POSITIVE_SUFFIX
     NumberFormatter::NEGATIVE_PREFIX
     NumberFormatter::NEGATIVE_SUFFIX
     NumberFormatter::PADDING_CHARACTER
     NumberFormatter::CURRENCY_CODE
     NumberFormatter::DEFAULT_RULESET
     NumberFormatter::PUBLIC_RULESETS
     Les symboles de format utilisés par numfmt_get_symbol() et numfmt_set_symbol().
NumberFormatter::DECIMAL_SEPARATOR_SYMBOL
     NumberFormatter::GROUPING_SEPARATOR_SYMBOL
     NumberFormatter::PATTERN_SEPARATOR_SYMBOL
     NumberFormatter::PERCENT_SYMBOL
     NumberFormatter::ZERO_DIGIT_SYMBOL
     NumberFormatter::DIGIT_SYMBOL
     NumberFormatter::MINUS_SIGN_SYMBOL
     NumberFormatter::PLUS_SIGN_SYMBOL
     NumberFormatter::CURRENCY_SYMBOL
     NumberFormatter::INTL_CURRENCY_SYMBOL
     NumberFormatter::MONETARY_SEPARATOR_SYMBOL
     NumberFormatter::EXPONENTIAL_SYMBOL
     NumberFormatter::PERMILL_SYMBOL
     NumberFormatter::PAD_ESCAPE_SYMBOL
     NumberFormatter::INFINITY_SYMBOL
     NumberFormatter::NAN_SYMBOL
     NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL
     NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
     
   Les modes d'arrondi utilisés par les fonctions numfmt_get_attribute()
   et numfmt_set_attribute() avec l'attribut
   NumberFormatter::ROUNDING_MODE.
   
NumberFormatter::ROUND_CEILING
     NumberFormatter::ROUND_DOWN
     NumberFormatter::ROUND_FLOOR
     NumberFormatter::ROUND_HALFDOWN
     NumberFormatter::ROUND_HALFEVEN
     NumberFormatter::ROUND_HALFUP
     NumberFormatter::ROUND_UP
     
   Valeurs de compléments utilisés par numfmt_get_attribute()
   et numfmt_set_attribute() avec l'attribut
   NumberFormatter::PADDING_POSITION.
   
NumberFormatter::PAD_AFTER_PREFIX
     NumberFormatter::PAD_AFTER_SUFFIX
     NumberFormatter::PAD_BEFORE_PREFIX
     NumberFormatter::PAD_BEFORE_SUFFIX