[html/php]

Résolu/Fermé
pmp75 Messages postés 7 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 17 mars 2010 - 15 mars 2010 à 18:36
pmp75 Messages postés 7 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 17 mars 2010 - 17 mars 2010 à 11:56
Bonjour,

Je souhaiterais forcer l'affichage d'une variable à 4 chiffres (2 avants et 2 après la virgule).
Par exemple si
$test = 2.5;
je voudrais que lorsque je fait un
echo $test; 
que la résultat affiché soit :
02.50


J'ai essayé le format_number, sprintf et ça n'a pas l'air de fonctionner (a moins que ce soit moi qui l'utilise mal).

Pouvez-vous, s'il vous plaît, me donner un petit coup de pouce là dessus ?!

Merci par avance.
Cordialement.
A voir également:

6 réponses

badlou Messages postés 128 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 15 mars 2010 48
15 mars 2010 à 19:02
Regarde la documentation de ces fonctions, tu as peut être fais une erreur (regarde aussi les exemple) :
https://www.php.net/manual/fr/function.number-format.php
https://www.php.net/manual/fr/function.sprintf.php
0
pmp75 Messages postés 7 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 17 mars 2010
16 mars 2010 à 13:48
MErci de ton aide.

J'avais effectivement fait une erreure. En revanche pour forcer l'affichage de 2 chiffres AVANT la virgule, sprintf() ne permet pas de réaliser ça (il peut forcer l'affichage sur 2 chiffres APRES les virgule, mais pas avant) ...
0
Bonjour

il peut forcer l'affichage sur 2 chiffres APRES les virgule, mais pas avant
Bien sûr que si, tu as mal lu la doc
Essaye :
$test=sprintf ('%05.2f',2.5);
echo $test;
0
swoog42 Messages postés 1059 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
16 mars 2010 à 14:32
sinon, sans connaitre la fonction sprintf, tu aurais pu y arriver :
if ($test > 10) echo '0';
echo $test;
$reste = $test * 100;
if ( ($reste % 10) == 0) echo '0';
0
if ($test > 10) echo '0';
Je crois bien que ce test est fait à l'envers
echo $test;
Et si $test a plus de deux chiffres après la virgule ????

Bref, on peut ré-inventer la roue, mais faudrait quand même la faire ronde ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
swoog42 Messages postés 1059 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
16 mars 2010 à 17:03
oui, effectivement, le test est à l'envers, j'ai tapé trop vite... après, je voulais juste démontré qu'on peut toujours s'en tirer même sans connaitre toutes les fonctions de PHP ^^
reste juste a adapter
0
pmp75 Messages postés 7 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 17 mars 2010
17 mars 2010 à 11:56
Re,

Désolé du retard, j'ai résolu mon problème en faisant effectivement un
if ($mar_variable <10) sprint("0%.2f", $ma_variable)
else sprintf("%.2f", $ma_variable);

Je cherchais un truc qui le fasse automatiquement... mais bon je garde ça provisoirement.

Merci à vous pour votre aide
0