Salut tout le monde,
Je suis tombé par hasard sur ce comportement du moins étrange.
Soit le code suivant :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $strange = ( 0.1 + 0.6 ) * 10; $result = (Int) $strange;// transtypage d'un Flottant vers un Entier echo $result;// output : 7 ?>
puis on remplace 0.6 par 0.7
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $strange = ( 0.1 + 0.7 ) * 10; $result = (Int) $strange;// transtypage d'un Flottant vers un Entier echo $result;// output : 7 ?>
D'après PHP, 10 * ( 0.1 + 0.7 ) == 7
Bizarre! Vous avez dit bizarre ? comme c'est bizarre.
Quelqu'un saurai m'expliquer pourquoi ce comportement ?
J'ai néanmoins trouvé le "correctif" mais pas l'explication.
Crdlt,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $strange = ( 0.1 + 0.7 ) * 10; $result = (int) round($strange); echo $result;// output : 8 ?>




Répondre avec citation




Partager