Précision des nombres flottants PHP : pourquoi ce résultat inattendu ?
La gestion par PHP des nombres à virgule flottante peut produire des résultats surprenants. Considérez ce qui suit :
$a = '35'; $b = '-34.99'; echo ($a + $b);
Au lieu du 0,01 attendu, la sortie est 0,0099999999999998. Cette particularité découle de la différence fondamentale entre l'arithmétique à virgule flottante et l'arithmétique des nombres réels.
Les nombres à virgule flottante, comme leur nom l'indique, représentent des nombres utilisant la notation binaire avec une précision finie. Par conséquent, il est impossible de représenter avec précision tous les nombres à l’aide de cette méthode. Cela peut conduire à des inexactitudes et des surprises comme celle ci-dessus.
Pour résoudre ce problème, on peut considérer ce qui suit :
Malheureusement, PHP ne dispose pas d'un type de données décimal dédié, comme dans de nombreux autres langages. Cela peut nuire à la précision lorsque vous travaillez avec des calculs financiers ou scientifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!