PHP float erreur de calcul lors de la soustraction

J'ai un drôle de problème. Si je soustrais 2 float var où l'on est le résultat d'une opération mathématique-je obtenir une valeur incorrecte.

Exemple:

var_dump($remaining);
var_dump($this->hours_sub['personal']);
echo $remaining-$this->hours_sub['personal'];

Ce il le de sortie:

float 5.4
float 1.4
5.3290705182008E-15

5.4-1.4 devrait être 4
Si j'ajoute deux valeurs, le résultat est correct.

Où est mon erreur?
Il ne peut pas être un arrondi question.

C'est fonctionne bien, peut-être que vous devriez essayer bcsub()
Pourquoi "Il ne peut pas être un arrondi problème."?
Parce qu'un arrondi question ne serait pas produire une valeur proche de 0 pour la différence de deux approximations 5.4 et 1,4 respectivement. Un "arrondi question" serait de produire des 3.999...9xyz ou 4.000...0xyz.
Directement $a=5.4;$b=1.4;echo $a-$b; produire le même résultat erroné?
Pour le moment, je ne suis pas convaincu que la question devrait être fermée à tous. Je suppose qu'il en sera TL, mais je ne suis pas sûr. Ce dont je suis sûr, c'est qu'il n'est pas dupe de ce qu'il était fermé. Pas dans les zones les plus éloignées.

OriginalL'auteur RubbelDeCatc | 2013-06-20