(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