Rechercher une fonction PHP

La classe NumberFormatter

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Introduction

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 :

  • 9 988 776,65 € en France
  • 9.988.776,65 € en Allemagne
  • $9,988,776.65 aux USA

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.

  

Synopsis de la classe

NumberFormatter {
/* Méthodes */
public __construct ( string $locale , int $style [, string $pattern ] )
public static NumberFormatter create ( string $locale , int $style [, string $pattern ] )
public string formatCurrency ( float $value , string $currency )
public string format ( number $value [, int $type ] )
public int getAttribute ( int $attr )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ([ int $type ] )
public string getPattern ( void )
public string getSymbol ( int $attr )
public string getTextAttribute ( int $attr )
public float parseCurrency ( string $value , string &$currency [, int &$position ] )
public mixed parse ( string $value [, int $type [, int &$position ]] )
public bool setAttribute ( int $attr , int $value )
public bool setPattern ( string $pattern )
public bool setSymbol ( int $attr , string $value )
public bool setTextAttribute ( int $attr , string $value )
}

  

Constantes pré-définies

Ces styles sont utilisés par numfmt_create() pour définir le type de formatteur.

NumberFormatter::PATTERN_DECIMAL (entier)
Format décimal défini par un modèle
NumberFormatter::DECIMAL (entier)
Format décimal
NumberFormatter::CURRENCY (entier)
Format monétaire
NumberFormatter::PERCENT (entier)
Format pourcentage
NumberFormatter::SCIENTIFIC (entier)
Format scientifique
NumberFormatter::SPELLOUT (entier)
Format littéral, basé sur des règles
NumberFormatter::ORDINAL (entier)
Format ordinal, basé sur des règles
NumberFormatter::DURATION (entier)
Format de durée, basé sur des règles
NumberFormatter::PATTERN_RULEBASED (entier)
Format de modèle, basé sur des règles
NumberFormatter::DEFAULT_STYLE (entier)
Format par défaut pour les conventions locales
NumberFormatter::IGNORE (entier)
Alias de PATTERN_DECIMAL

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)
Dérive le type depuis le type de variable
NumberFormatter::TYPE_INT32 (entier)
Formate / analyse un entier 32 bits
NumberFormatter::TYPE_INT64 (entier)
Formate / analyse un entier 64 bits
NumberFormatter::TYPE_DOUBLE (entier)
Formate / analyse un nombre décimal
NumberFormatter::TYPE_CURRENCY (entier)
Formate / analyse une valeur monétaire

Attributs de formats de nombre utilisés par numfmt_get_attribute() et numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY (entier)
Analyse uniquement les entiers.
NumberFormatter::GROUPING_USED (entier)
Séparateur de groupes.
NumberFormatter::DECIMAL_ALWAYS_SHOWN (entier)
Affiche toujours une virgule décimale.
NumberFormatter::MAX_INTEGER_DIGITS (entier)
Nombre maximal de chiffres.
NumberFormatter::MIN_INTEGER_DIGITS (entier)
Nombre minimal de chiffres.
NumberFormatter::INTEGER_DIGITS (entier)
Nombre de chiffres.
NumberFormatter::MAX_FRACTION_DIGITS (entier)
Nombre maximal de décimales.
NumberFormatter::MIN_FRACTION_DIGITS (entier)
Nombre minimal de décimales.
NumberFormatter::FRACTION_DIGITS (entier)
Nombre de décimales.
NumberFormatter::MULTIPLIER (entier)
Multiplicateur.
NumberFormatter::GROUPING_SIZE (entier)
Taille de regroupement.
NumberFormatter::ROUNDING_MODE (entier)
Mode d'arrondi.
NumberFormatter::ROUNDING_INCREMENT (entier)
Incrément d'arrondi.
NumberFormatter::FORMAT_WIDTH (entier)
La largeur de complément pour le formattage d'un nombre.
NumberFormatter::PADDING_POSITION (entier)
La position à laquelle le complément se fait. Voyez les constantes de complément pour avoir les différentes valeurs possibles.
NumberFormatter::SECONDARY_GROUPING_SIZE (entier)
Taille secondaire de groupement.
NumberFormatter::SIGNIFICANT_DIGITS_USED (entier)
Utilise les chiffres significatifs.
NumberFormatter::MIN_SIGNIFICANT_DIGITS (entier)
Nombre minimum de chiffres significatifs.
NumberFormatter::MAX_SIGNIFICANT_DIGITS (entier)
Nombre maximum de chiffres significatifs.
NumberFormatter::LENIENT_PARSE (entier)
Mode d'analyse utilisé par les formats à règles.

Attributs de texte pour les formats de nombres, utilisés par numfmt_get_text_attribute() et numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX (entier)
Préfixe positif.
NumberFormatter::POSITIVE_SUFFIX (entier)
Suffixe positif.
NumberFormatter::NEGATIVE_PREFIX (entier)
Préfixe négatif.
NumberFormatter::NEGATIVE_SUFFIX (entier)
Suffixe négatif.
NumberFormatter::PADDING_CHARACTER (entier)
Le caractère à utiliser pour compléter les formats jusqu'à la taille.
NumberFormatter::CURRENCY_CODE (entier)
Le code de devise ISO.
NumberFormatter::DEFAULT_RULESET (entier)
Le jeu de règles par défaut. Il est uniquement utilisable avec les formatteurs à règles.
NumberFormatter::PUBLIC_RULESETS (entier)
Le jeu de règles publiques. Ceci est uniquement disponible avec les formatteurs à règles. C'est un attribut en lecture seule. Les règles publiques sont retournées sous forme d'une seule chaîne, et chaque règle est délimitée par un point-virgule ';'.

Les symboles de format utilisés par numfmt_get_symbol() et numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL (entier)
Le séparateur décimal.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL (entier)
Le séparateur de groupes.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL (entier)
Le modèle de séparateur.
NumberFormatter::PERCENT_SYMBOL (entier)
Le signe de pourcentage.
NumberFormatter::ZERO_DIGIT_SYMBOL (entier)
Zéro.
NumberFormatter::DIGIT_SYMBOL (entier)
Un caractère représentant un chiffre dans un modèle.
NumberFormatter::MINUS_SIGN_SYMBOL (entier)
Le signe moins.
NumberFormatter::PLUS_SIGN_SYMBOL (entier)
Le signe plus.
NumberFormatter::CURRENCY_SYMBOL (entier)
Le symbole de devise.
NumberFormatter::INTL_CURRENCY_SYMBOL (entier)
Le symbole international de devise.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL (entier)
Le séparateur monétaire.
NumberFormatter::EXPONENTIAL_SYMBOL (entier)
Le symbole d'exponentiel.
NumberFormatter::PERMILL_SYMBOL (entier)
Le symbol par mille.
NumberFormatter::PAD_ESCAPE_SYMBOL (entier)
Le caractère de protection des symboles.
NumberFormatter::INFINITY_SYMBOL (entier)
Le symbole de l'infini.
NumberFormatter::NAN_SYMBOL (entier)
Le symbole "n'est pas un nombre".
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL (entier)
Le symbole des chiffres significatifs.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL (entier)
Le séparateur de groupes monétaires.

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)
Mode d'arrondi vers l'infini positif.
NumberFormatter::ROUND_DOWN (entier)
Mode d'arrondi vers zéro.
NumberFormatter::ROUND_FLOOR (entier)
Mode d'arrondi vers l'infini négatif.
NumberFormatter::ROUND_HALFDOWN (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi inférieur dans ce cas.
NumberFormatter::ROUND_HALFEVEN (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi vers le nombre pair dans ce cas.
NumberFormatter::ROUND_HALFUP (entier)
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi supérieur dans ce cas.
NumberFormatter::ROUND_UP (entier)
Mode d'arrondi qui éloigne de zéro.

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)
Caractères de compléments ajoutés après le préfixe.
NumberFormatter::PAD_AFTER_SUFFIX (entier)
Caractères de compléments ajoutés après le suffixe.
NumberFormatter::PAD_BEFORE_PREFIX (entier)
Caractères de compléments ajoutés avant le préfixe.
NumberFormatter::PAD_BEFORE_SUFFIX (entier)
Caractères de compléments ajoutés avant le suffixe.

  

Sommaire

Rechercher une fonction PHP

Version en cache

21/11/2024 23:59:49 Cette version de la page est en cache (à la date du 21/11/2024 23:59:49) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-class.numberformatter.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut