Bonjour, j'ai un petit problème avec des float.

Voici un exemple très parlant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$toto = 56.6 + 7.5; echo $toto; // Affiche 64.1
$toto -= 56.6; echo $toto; // Affiche 7.5
$toto -= 7.5; echo $toto; // Affiche -7.105427357601E-15
$toto = round($toto,2); echo $toto; // Affiche -0
$toto = round($toto,2); echo $toto; // Affiche enfin 0
Comme vous vous en doutez, il s'agit de prix que j'additionne puis que je soustrait, selon que les articles sont ajoutés ou retirés. Le hic est que le codage binaire des nombres fait apparaître un défaut d'affichage, lorsque le total revient à 0. J'ai bien trouvé la solution écrite ci-dessus, en appliquant 2 fois round (bizarre que la première fois il ne supprime pas le signe!), ou en arrondissant la valeur absolue du total, pour éviter de faire 2 arrondis pour rien, mais j'aimerais savoir s'il existe une meilleure solution.

Merci d'avance!