(PHP 5 >= 5.3.0, PHP 7, 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, qulelque soit la devise demandée. Cela signifie que le même nombre aura différente valeur 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.
Ces styles sont utilisés par numfmt_create() pour définir le type de formatteur.
NumberFormatter::PATTERN_DECIMAL
(entier)
NumberFormatter::DECIMAL
(entier)
NumberFormatter::CURRENCY
(entier)
NumberFormatter::PERCENT
(entier)
NumberFormatter::SCIENTIFIC
(entier)
NumberFormatter::SPELLOUT
(entier)
NumberFormatter::ORDINAL
(entier)
NumberFormatter::DURATION
(entier)
NumberFormatter::PATTERN_RULEBASED
(entier)
NumberFormatter::DEFAULT_STYLE
(entier)
NumberFormatter::IGNORE
(entier)
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
(entier)
NumberFormatter::TYPE_INT32
(entier)
NumberFormatter::TYPE_INT64
(entier)
NumberFormatter::TYPE_DOUBLE
(entier)
NumberFormatter::TYPE_CURRENCY
(entier)
Attributs de formats de nombre utilisés par numfmt_get_attribute() et numfmt_set_attribute().
NumberFormatter::PARSE_INT_ONLY
(entier)
NumberFormatter::GROUPING_USED
(entier)
NumberFormatter::DECIMAL_ALWAYS_SHOWN
(entier)
NumberFormatter::MAX_INTEGER_DIGITS
(entier)
NumberFormatter::MIN_INTEGER_DIGITS
(entier)
NumberFormatter::INTEGER_DIGITS
(entier)
NumberFormatter::MAX_FRACTION_DIGITS
(entier)
NumberFormatter::MIN_FRACTION_DIGITS
(entier)
NumberFormatter::FRACTION_DIGITS
(entier)
NumberFormatter::MULTIPLIER
(entier)
NumberFormatter::GROUPING_SIZE
(entier)
NumberFormatter::ROUNDING_MODE
(entier)
NumberFormatter::ROUNDING_INCREMENT
(entier)
NumberFormatter::FORMAT_WIDTH
(entier)
NumberFormatter::PADDING_POSITION
(entier)
NumberFormatter::SECONDARY_GROUPING_SIZE
(entier)
NumberFormatter::SIGNIFICANT_DIGITS_USED
(entier)
NumberFormatter::MIN_SIGNIFICANT_DIGITS
(entier)
NumberFormatter::MAX_SIGNIFICANT_DIGITS
(entier)
NumberFormatter::LENIENT_PARSE
(entier)
Attributs de texte pour les formats de nombres, utilisés par numfmt_get_text_attribute() et numfmt_set_text_attribute().
NumberFormatter::POSITIVE_PREFIX
(entier)
NumberFormatter::POSITIVE_SUFFIX
(entier)
NumberFormatter::NEGATIVE_PREFIX
(entier)
NumberFormatter::NEGATIVE_SUFFIX
(entier)
NumberFormatter::PADDING_CHARACTER
(entier)
NumberFormatter::CURRENCY_CODE
(entier)
NumberFormatter::DEFAULT_RULESET
(entier)
NumberFormatter::PUBLIC_RULESETS
(entier)
Les symboles de format utilisés par numfmt_get_symbol() et numfmt_set_symbol().
NumberFormatter::DECIMAL_SEPARATOR_SYMBOL
(entier)
NumberFormatter::GROUPING_SEPARATOR_SYMBOL
(entier)
NumberFormatter::PATTERN_SEPARATOR_SYMBOL
(entier)
NumberFormatter::PERCENT_SYMBOL
(entier)
NumberFormatter::ZERO_DIGIT_SYMBOL
(entier)
NumberFormatter::DIGIT_SYMBOL
(entier)
NumberFormatter::MINUS_SIGN_SYMBOL
(entier)
NumberFormatter::PLUS_SIGN_SYMBOL
(entier)
NumberFormatter::CURRENCY_SYMBOL
(entier)
NumberFormatter::INTL_CURRENCY_SYMBOL
(entier)
NumberFormatter::MONETARY_SEPARATOR_SYMBOL
(entier)
NumberFormatter::EXPONENTIAL_SYMBOL
(entier)
NumberFormatter::PERMILL_SYMBOL
(entier)
NumberFormatter::PAD_ESCAPE_SYMBOL
(entier)
NumberFormatter::INFINITY_SYMBOL
(entier)
NumberFormatter::NAN_SYMBOL
(entier)
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL
(entier)
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
(entier)
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
(entier)
NumberFormatter::ROUND_DOWN
(entier)
NumberFormatter::ROUND_FLOOR
(entier)
NumberFormatter::ROUND_HALFDOWN
(entier)
NumberFormatter::ROUND_HALFEVEN
(entier)
NumberFormatter::ROUND_HALFUP
(entier)
NumberFormatter::ROUND_UP
(entier)
Valeurs de compléments utilisés par numfmt_get_attribute()
et numfmt_set_attribute() avec l'attribut
NumberFormatter::PADDING_POSITION
.
NumberFormatter::PAD_AFTER_PREFIX
(entier)
NumberFormatter::PAD_AFTER_SUFFIX
(entier)
NumberFormatter::PAD_BEFORE_PREFIX
(entier)
NumberFormatter::PAD_BEFORE_SUFFIX
(entier)