Arrondir un nombre - PHP - Programmation
Marsh Posté le 15-12-2011 à 16:37:52
http://www.php.net/manual/fr/function.round.php exemple n°2, ça ne va pas en ajoutant le 3ème paramètre?
Marsh Posté le 15-12-2011 à 16:57:22
rufo a écrit : http://www.php.net/manual/fr/function.round.php exemple n°2, ça ne va pas en ajoutant le 3ème paramètre? |
Bonjour Rufo,
echo round(9.5, 0, PHP_ROUND_HALF_EVEN);
celui la? non il m'affiche rien
PHP Version 5.1.6
apparament c'est pour la 5.3
Marsh Posté le 15-12-2011 à 17:51:56
Ben sinon, tu te codes la fonction à la main si tu peux pas changer ta version de php C'est pas bien dur...
Marsh Posté le 16-12-2011 à 12:02:25
spoque a écrit : Bonjour, |
Pourquoi 123.54 doit donner 123 et non 124 ?
round( 123.45, 0 ) => 123
round( 123.54, 0 ) => 124
Marsh Posté le 16-12-2011 à 13:53:45
Je me suis fait la même réflexion. En maths, l'arrondi se calcule pas comme ça. La seule explication est que son besoin est spécifique à une situation donnée.
Marsh Posté le 16-12-2011 à 14:15:38
rufo a écrit : Je me suis fait la même réflexion. |
Et tu l'as gardée pour toi
Marsh Posté le 16-12-2011 à 14:49:34
J'ai d'abord pensé que son besoin était particulier, vu qu'il dit dans son premier post que les fonctions round, ceil et floor ne l'ont pas aidé...
Marsh Posté le 17-12-2011 à 12:11:15
Non, il a mis que ça ne marchait pas, pas que ça ne correspondait pas à ses besoins. Mais on ne sait pas pourquoi...
Marsh Posté le 19-12-2011 à 15:00:10
aideinfo a écrit : Non, il a mis que ça ne marchait pas, pas que ça ne correspondait pas à ses besoins. Mais on ne sait pas pourquoi... |
Bonjour,
effectivement avec
round( 123.45, 0 ) => 123
round( 123.54, 0 ) => 124
sa marche, mais j'ai une variable exemple $price qui a la valeur 110.57 rien d'autre, et quand je remplace le nombre par ma variable il arrondi à la valeur en dessous.
echo round($price, 0); m'affiche 110
je ne comprend pas.
Marsh Posté le 20-12-2011 à 10:58:36
En fait, la réaction est différente selon que tu utilises un point ou une virgule (selon paramètres régionaux de Windows). Pour ma part, j'ai 110 avec une virgule, 111 avec un point.
Marsh Posté le 20-12-2011 à 12:30:41
spoque a écrit : Bonjour, |
C'est pour quelle application
aideinfo a écrit : En fait, la réaction est différente selon que tu utilises un point ou une virgule (selon paramètres régionaux de Windows). Pour ma part, j'ai 110 avec une virgule, 111 avec un point. |
la même chose ici sous linux
Code :
|
donne
Citation : |
Marsh Posté le 20-12-2011 à 14:00:50
FranceDenBas a écrit : |
FranceDenBas a écrit :
|
Bonjour,
j'extrais par une boucle un flux XML ma valeur est bien avec un point.
donc:123.56=123 chez moi !!!
echo round("123.56", 0); = 123 bizzard
Marsh Posté le 20-12-2011 à 22:24:31
La différence provient à mon avis du fait que dans un cas la valeur est considérée comme une chaîne numérique, dans l'autre un nombre décimal.
Marsh Posté le 21-12-2011 à 10:20:06
aideinfo a écrit : La différence provient à mon avis du fait que dans un cas la valeur est considérée comme une chaîne numérique, dans l'autre un nombre décimal. |
S'il sort d'un XML avec SimpleXML c'est même pas une chaîne. Il faut faire une conversion explicite type :
Code :
|
Marsh Posté le 19-03-2012 à 17:52:46
Super merci MEI pour cette remarque qui va m'éviter de racheter un écran .
Marsh Posté le 15-12-2011 à 15:30:45
Bonjour,
j'essaye d'arrondir un nombre comme:
123.54=123
123.56=124
je fait avec des round des floor et des ceil mais ceci ne marche pas
quelle piste je dois prendre?
Merci
Message édité par spoque le 15-12-2011 à 15:31:12