Méthode Python pour comparer si deux nombres à virgule flottante sont égaux

爱喝马黛茶的安东尼
Libérer: 2019-06-17 16:43:11
original
12075 Les gens l'ont consulté

Comment python compare-t-il si deux nombres à virgule flottante sont égaux ?

Recommandations associées : "vidéo python"

Méthode Python pour comparer si deux nombres à virgule flottante sont égaux

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)
Copier après la connexion

au lieu de

.
 if (price == p)
Copier après la connexion

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))
Copier après la connexion

Mathématiquement, a et b ne sont pas égaux, mais dans un ordinateur 32 bits, ils sont égaux.

Si la valeur absolue de la différence entre deux nombres à virgule flottante de même signe est inférieure ou égale à une certaine erreur acceptable (c'est-à-dire la précision), ils sont considérés comme égaux.

N'utilisez pas directement "==" ou "!=" pour comparer deux nombres à virgule flottante, mais vous pouvez directement utiliser "<" et ">" pour comparer lequel est le plus grand.

float a=10.222222225,b=10.222222229
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!