Maison > Article > développement back-end > Pourquoi mes comparaisons PHP Float sont-elles inexactes ?
Précision du calcul flottant PHP : surmonter les défis de précision
Lorsqu'ils travaillent avec des calculs à virgule flottante en PHP, les développeurs rencontrent souvent des défis liés à la précision. Cet article aborde un problème spécifique rencontré par un utilisateur qui a tenté de comparer deux valeurs à virgule flottante en utilisant une tolérance de 0,01 mais a rencontré des résultats inattendus.
Pour comprendre le problème, examinons le code fourni :
<code class="php">$fooValue = 100.68; $cowValue = 100.67; $diffValue = $fooValue - $cowValue; if($diffValue <= 0.01) { echo("success"); } else { echo("error"); }</code>
Dans cet exemple, le résultat est affiché comme "erreur" car les calculs à virgule flottante en PHP ne sont pas exacts en raison d'inexactitudes dans la représentation binaire. Cela signifie que même si mathématiquement $fooValue et $cowValue diffèrent de 0,01, leurs représentations binaires internes peuvent ne pas refléter parfaitement cette valeur.
Pour surmonter ce défi, PHP propose des solutions alternatives :
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!