Rechercher : dans
Par :

[PHP] Forcer l'affichage des zéros inutiles

Dernière réponse le 10 aoû 2008 à 15:37:37 flokocha, le 8 mar 2006 à 16:49:50 
 Signaler ce message aux modérateurs

Bonjour,

Je me trouve confronté à un problème en apparance tout bête mais auquel je ne trouve pas de solution.
Dans un script PHP je calcule un prix de manière automatique et l'arrondis à deux chiffres après la virgule. Or si le prix obtenu est par exemple de 15.50€, le script affichera 15.5€, ce qui ne me convient pas. Ainsi je souhaiterais connaître une manière "propre" et rapide pour forcer l'affichage des zéros inutiles après la virgule.

En faisant une recherche sur le net j'ai constaté que certaines personnes confrontées au même problème l'avaient résolu en utilisant la fonction number_format, mais je ne vois pas comment l'utiliser sachant que si le nombre de chiffres après la virgule est fixé à 2, le nombre de décimales lui peut varier.

Je vous remercie pour vos réponses éventuelles. :)
.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.

Meilleures réponses pour « [PHP] Forcer l'affichage des zéros inutiles » dans :
[Webmaster] Afficher facilement le code php/xhtml de vos pages VoirSi vous voulez proposer a vos visiteurs de voir la source de vos fichiers (PHP ou HTML), il y a plusieurs solutions. En php Afficher le code php Afficher le code html En html Informations Voir aussi En php Afficher le code php La...
[PHP] Comment afficher l'adresse IP d'un visiteur ? VoirPour afficher l'adresse IP d'un visiteur sur votre site, insérez ce code dans la zone où vous voulez qu'elle s'affiche.
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
PHP - Affichage de texte sur le navigateur VoirLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

kilian, le 8 mar 2006 à 17:27:06
  • +1

Salut,

Avec sprintf, tu peux décider quel formatage utiliser et quel nombre de chiffres après la virgule tu veux. Pour les décimales apparemment si tu ne mets rien ya pas de soucis.
Par exemple:

echo sprintf('%.2f', 522.555); //Affichera 522.55

L'avantage aussi c'est que sprintf coupe les chiffres mais n'arrondit pas.

Répondre à kilian

2

flokocha, le 8 mar 2006 à 23:30:23

Merci pour cette réponse mais malheureusement je ne comprends pas du tout le principe de la fonction sprintf().

En effet prenons pour exemple le calcul suivant: 5.50/1.196, dont le résultat est 4,5986622...

Si j'utilise la fonction round($nombre,2), j'obtiens 4.6 (le résultat que j'attends étant 4.60).
Si j'utilise la fonction sprintf('%.2f',$nombre), j'obtiens 4.604 (je ne comprends pas pourquoi).
Si j'utilise la fonction sprintf('%.1f',$nombre), j'obtiens 4.63 (je ne comprends encore moins pourquoi).

Merci d'éclairer ma lanterne. :)
.::: "A trop vouloir feindre de faire fi, on finit
par faire fi de vouloir feindre."
:::.

Répondre à flokocha

3

kilian, le 8 mar 2006 à 23:35:54

Bizzare, moi avec sprintf('%.2f',$nombre), j'ai bien 4.60

Tu pourrais me dire ta version de Php?

Répondre à kilian

4

flokocha, le 12 mar 2006 à 20:20:59

Désolé pour le retard dans ma réponse. :)

Ma version de PHP est la 4.3.10
.::: "A trop vouloir feindre de faire fi, on finit
par faire fi de vouloir feindre."
:::.

Répondre à flokocha

5

kilian, le 12 mar 2006 à 21:10:33

Bon, je testerai bientôt avce cette version.

Répondre à kilian

6

rduvrac, le 8 déc 2007 à 17:51:09

ça peux venir su fait que tes . se transforme en , ce qui à pour conséquence de fausser tout calculs

c'est juste une piste...

Je passai par là à la recherche d'une autre fonction proche mais à l'inverse ;-)

j'ai un calcul qui me donne pout 7.3 le résultat 7
sauf que moi je cherche à avoir le zéro avant lorsque le résultat est un chiffre unique
Bon si une piste poster ici mais n'oubliez pas que c'est pas le sujet principal du post ;-)

Répondre à rduvrac

7

rdbois, le 28 jui 2008 à 14:41:59
  • +4

Je suis tombé sur ce sujet car je cherché exactement la même chose que son titre, et en y réfléchissant j'ai trouvé tout seul.

Donc, pour tous ceux qui tomberont là-dessus, voici une solution :

$prix = round($prix,2); // On arrondi le prix à 2 chiffres après la virgule

echo sprintf('%.2f',$prix); // On affiche le prix avec 2 chiffres après la virgule quoi qu'il arrive

101010

Répondre à rdbois

8

 113, le 10 aoû 2008 à 15:37:37

Number_format() c le mieux pr les 0 "innutiles"

Répondre à 113