Modérateur PHPfrance |
10684 Messages
23 avr. 2009, 11:16
C'est un bug sans en être un... En fait la fonction round() lorsqu'elle est utilisée pour arrondir des nombres qui tombent exactement sur le demi va arrondir les pairs à l'inférieur et les impairs au supérieur.
echo round(1.135, 2); // 1.14
echo round(2.135, 2); // 2.13
echo round(3.135, 2); // 3.14
La raison de ce comportement (pour le moins abérant selon moi) est financier et absolument pas mathématique, afin de ne pas toujours arrondir au supérieur et ainsi prélever un peu plus d'argent, ou perdre un peu plus d'argent à chaque fois que tu vas arrondir. Ca permet d'espérer avoir un compte qui en moyenne devrait avec un peu de chance rester équilibré (et je vous ferais grace de mon avis en la matière).
Ca avait été "corrigé" avec php 4.3, c'est revenu avec php 5.0 ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...