Comment python compare-t-il si deux nombres à virgule flottante sont égaux ?
Recommandations associées : "vidéo python"
float le type ne peut pas être Comparer égal ou inégal, mais vous pouvez comparer >, <, >=, <=
en utilisant == est grammaticalement correct, mais deux nombres à virgule flottante qui devraient être égaux sont dus à les éléments internes de l'ordinateur. Les raisons exprimées peuvent comporter de légères erreurs. Dans ce cas, == sera utilisé pour penser qu'elles ne sont pas égales. Vous devez utiliser la valeur absolue de la différence entre deux nombres à virgule flottante pour qu'elle soit inférieure à une valeur acceptable pour déterminer s'ils sont égaux. Par exemple, utilisez
if (fabs(price - p) < 0.000001)
au lieu de
if (price == p)
De nombreuses applications d'ingénierie utilisent la méthode de calcul de la précision
Définir une précision et la comparer avec la valeur absolue de la différence. Elle est considérée comme égale dans la plage de précision ;
Les variables à virgule flottante ne peuvent être comparées à aucun nombre en utilisant "==" ou "!=".
Assurez-vous de noter que les variables de type float ou double ont des limites de précision. Par conséquent, veillez à
éviter de comparer des variables à virgule flottante avec des nombres utilisant "==" ou "!=", et essayez de les convertir en formes ">=" ou "<=".
En supposant que le nom de la variable à virgule flottante est une erreur (c'est-à-dire une précision).
La représentation informatique des nombres à virgule flottante (type flottant ou double) a une limite de précision. Pour les nombres à virgule flottante qui dépassent la limite de précision, l'ordinateur tronquera la partie décimale au-delà de leur précision. Par conséquent, deux nombres à virgule flottante initialement inégaux peuvent devenir égaux dans l’ordinateur. Par exemple :
if ((x>=-EPSINON) && (x<=EPSINON))
Mathématiquement, a et b ne sont pas égaux, mais dans un ordinateur 32 bits, ils sont égaux.
float a=10.222222225,b=10.222222229
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!