comment dire a PHP de s'arreter 2 chiffres aprés la virgule

Eléphant du PHP | 90 Messages

08 juin 2005, 16:25

j'effectue une moyenne avec php pr effectuer ensuite un pourcentage et le probleme c'est qu'il me donne minimum 7 chiffres aprés la virgules et je voudrais que php ne garde que les 2 premiers chiffres aprés la virgule ou bien sinon faire un arrondi (c'est ce que je préférerais) :)

comment faire ?

MERCI

Eléphanteau du PHP | 36 Messages

08 juin 2005, 16:51

Il y a pleins de fonctions pour cela comme floor, ceil ou bien round.

Il y a aussi number_format.

Bref, ya de quoi s'en sortir à moindre frais.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 juin 2005, 16:53

si c'est un problème d'affichage, je te conseille d'utiliser sprintf()
sprintf("moyenne : %.2f", $moyenne);
si c'est un problème d'enregistrement, pas mieux que round()
Modifié en dernier par zeus le 08 juin 2005, 16:54, modifié 1 fois.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 90 Messages

08 juin 2005, 16:54

Merci :)

Eléphant du PHP | 90 Messages

08 juin 2005, 17:25

Je n'arrive pas a afficher la valeur au dessus dites moi mon erreur je ne la trouve pas
ceil($total)=($total_questionnaire/$max)*100;

Mammouth du PHP | 1776 Messages

08 juin 2005, 17:43

Je n'arrive pas a afficher la valeur au dessus dites moi mon erreur je ne la trouve pas
ceil($total)=($total_questionnaire/$max)*100;
deja faut que tes variables existent...
rappel des variables utilisées:
$total
$total_questionnaire
$max

Ensuite pour calculer et afficher le résultat:
$calcul_fini = round( (($total_questionnaire/$max)*100) , 2);
echo $calcul_fini;
Envisage le remplacement de la fonction round par ceil si tu le souhaite...

Ton erreur:
pseudo-code de ton code "ma fonction ceil sera le pourcentage"...Pourquoi définir une fonction de php ???
faut plutot dire "ma variable sera le ceil du pourcentage"

+ d'infos: http://www.nexen.net/docs/php/annotee/function.ceil.php

Enjoy !

Eléphanteau du PHP | 36 Messages

08 juin 2005, 17:49

$total = number_format ( ( ( $total_questionnaire / $max ) * 100 ) , 2 )  ;
Et avec number_format ????

Eléphant du PHP | 90 Messages

08 juin 2005, 17:55

C'est du tout bon
merci a vous
et bon courage pr la suite

Mammouth du PHP | 1776 Messages

08 juin 2005, 18:01

$total = number_format ( ( ( $total_questionnaire / $max ) * 100 ) , 2 )  ;
Et avec number_format ????
peut-être fonction trop poussée pour sa demande?
sachant que le nombre au maximum est de 100, le formatage n'a donc aucun intérêt...
En tout cas très bonne idée...mais pour des scripts plus evolués :wink:

Enjoy !

Mammouth du PHP | 19672 Messages

08 juin 2005, 18:03

BIen sur que ça fonctionne avec number_format: essayez ceci:
<?php
$total_questionnaire = 6543.7845;
$max = 12.458;
$total = number_format((($total_questionnaire / $max )*100), 2, ',', ' ')  ;
echo($total);
Note: le formattage proposé est le système français, donc un espace par tranche de trois chiffres et les décimales après une virgule, ici 2 chiffres.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1776 Messages

08 juin 2005, 18:07

BIen sur que ça fonctionne avec number_format: essayez ceci:
<?php
$total_questionnaire = 6543.7845;
$max = 12.458;
$total = number_format((($total_questionnaire / $max )*100), 2, ',', ' ')  ;
echo($total);
Note: le formattage proposé est le système français, donc un espace par tranche de trois chiffres et les décimales après une virgule, ici 2 chiffres.
yep, mais dans son cas pas besoin extrême d'avoir cette fonction sachant que c un pourcentage (nombre maxi = 100) donc un round suffit amplement :wink:

Mammouth du PHP | 19672 Messages

08 juin 2005, 18:13

à une différence près: si tu tombes sur un entier, round n'ajoutera pas ",00" tandis que number_format si.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1776 Messages

08 juin 2005, 18:24

à une différence près: si tu tombes sur un entier, round n'ajoutera pas ",00" tandis que number_format si.
yep, mais dans son cas est-ce vraiment utile? :lol:
J'utilise également format_number dans mes scripts mais pour son utilisation...(car dans son premier code il avait mis la fonction ceil() qui arrondit à l'entier supérieur...ce qui prouve qu'il ne cherchait dès lors pas la précision ! :roll: ).
:wink:

Enjoy !

Eléphant du PHP | 90 Messages

09 juin 2005, 09:16

ne vous inquietez pas les calculs me vont amplement la fonction round() me suffit.
en tout cas merci a vous de m'avoir aider, c'est sympa