money_format
-- Met un nombre au format monétaire
string money_format
( string format, float number )
money_format() retourne le nombre
number avec le format financier. Cette
fonction fait l'interface avec la
fonction strfmon() de la bibliothèque
C, à la différence près
que cette implémentation ne
convertit qu'un nombre à la
fois.
Note : La fonction money_format()
est uniquement définie si le
système a les capacités
strfmon. Par exemple, Windows ne les
a pas, donc, money_format() n'est
pas définie sous Windows.
Le paramètre de format
est constitué de la séquence
suivante :
un caractère %
une configuration optionnelle
une taille de champ optionnelle
une précision à gauche
optionnelle
une précision à droite
optionnelle
un caractère de conversion
obligatoire
Configuration. Une ou plusieurs
des configurations suivantes sont
utilisables :
=f
Le caractère = suivi par un
octet unique f qui sera utilisé
comme caractère de remplissage.
Le caractère de remplissage
par défaut est espace.
^
Désactive le groupage de caractères
(tel que défini dans la configuration
locale).
+ ou (
Spécifie le style de formatage
pour les nombres positifs et négatifs.
Si + est utilisé, les équivalents
dans la configuration locale de +
et - seront utilisés. Si (
est utilisé, les sommes négatives
seront placées entre parenthèses.
Si aucune spécification n'est
fournie, la valeur par défaut
est +.
!
Supprime le simple monétaire
dans la chaîne finale.
-
Si fourni, cette configuration fait
que les champs seront justifiés
à gauche (complétés
à droite), au contraire de
la configuration par défaut
qui est justifiée à
droite, et complétée
à gauche.
Taille de champ.
w
Un nombre décimal qui spécifie
la taille minimale du champ. Le champ
sera complété à
gauche, à moins que la configuration
- ne soit utilisée. Par défaut,
cette valeur est de 0.
Précision à
gauche.
#n
Le nombre maximal de chiffres (n)
attendus à gauche du séparateur
décimal (e.g. la virgule).
Cette option est généralement
utilisée pour conserver l'alignement
de colonnes de nombres, en utilisant
un caractère pour compléter
le nombre si ce dernier a moins de
n chiffres. Si le nombre réel
de chiffres est plus grand que n,
cette spécification est ignorée.
Si le groupage n'a pas été
supprimé via la configuration
^, les séparateurs de groupage
seront insérés avant
le caractère de remplissage
(le cas échéant). Les
séparateurs ne seront pas appliqués
aux caractères de remplissage,
même si ce caractère
est un nombre.
Pour s'assurer de l'alignement, tous
les caractères apparaissant
avant et après le nombre formaté,
tels que les symboles monétaires
ou les signes négatif et positif,
seront placés au même
endroit grâce à des espaces
supplémentaires, afin que toutes
les tailles des nombres soient les
mêmes.
Précision à
droite.
.p
Un point suivi par un nombre de décimales
(p). Si la valeur de p est 0 (zéro),
le séparateur décimal
et les décimales seront supprimés.
Si aucune précision à
droite n'est précisée,
la valeur par défaut sera lue
dans la configuration locale. Le nombre
formaté sera alors arrondi
pour satisfaire les contraintes d'affichage.
Caractères de conversion.
i
Le nombre est formaté suivant
le format monétaire international
de la configuration locale (e.g. pour
la France : 1 234,56 F).
n
Le nombre est formaté en fonction
du format monétaire national
(e.g. pour la configuration de_DE
: DM1.234,56).
%
Retourne le caractère %.
Note : La catégorie LC_MONETARY
de la configuration locale affecte
le comportement de cette fonction.
Utilisez setlocale() pour configurer
correctement PHP avant d'utiliser
cette fonction.
Les caractères placés
avant et après la chaîne
de formatage seront laissés
intacts.
Exemple - avec money_format()
Voici plusieurs exemples d'utilisation
de la fonction money_format() avec
différentes chaînes de
formatage, et configurations locales.
<?php
$number = 1234.56;
// Affichons ce nombre au format international
pour en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number)."\n";
// USD 1,234.56
// Et au format
italien national avec 2 decimales
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number)."\n";
// L. 1.234,56
// Utilisation d'un nombre négatif
$number = -1234.5672;
// Format US national, avec les parenthèeses
pour les nombres négatifs
// et 10 chiffres de précision
à gauche
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number)."\n";
// ($ 1,234.57)
// Format similaire au précédent,
en ajoutant 2 décimales
// pour la précision à
droite, et en utilisant le caractère
de remplissage '*'
echo money_format('%=*(#10.2n', $number)."\n";
// ($********1,234.57)
// Utilisons maintenant la justification
à gauche, avec un champ de
14 caractères
// de long, sans groupage de chiffres,
et en utilisant le format international
// pour de_DE
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i',
1234.56)."\n";
// DEM 1234,56****
// Ajoutons encore à l'exemple
précédent
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'La valeur finale est %i (après
10 % de remise)';
echo money_format($fmt, 1234.56)."\n";
// La valeur finale est GBP 1,234.56
(après 10 % de remise)
?>
Voir aussi setlocale(), number_format(),
sprintf(),
printf() et sscanf().
Copyright © 2001-2006 The
PHP Group. All rights reserved.
|