Maison > développement back-end > C++ > L'arithmétique à virgule flottante est-elle associative ?

L'arithmétique à virgule flottante est-elle associative ?

Susan Sarandon
Libérer: 2024-12-08 04:47:09
original
464 Les gens l'ont consulté

Is Floating-Point Arithmetic Associative?

L'associativité de l'arithmétique à virgule flottante

L'arithmétique à virgule flottante est largement utilisée dans le calcul scientifique, mais une question particulière se pose : est-ce associatif pour l'addition et la multiplication ? Cette requête apparemment simple recèle des complexités cachées.

Dans le domaine de l'addition à virgule flottante, l'associativité n'est pas toujours garantie. Un exemple frappant est le code suivant :

cout << ((0.7 + 0.2 + 0.1) == 1) << endl;     //output is 0
cout << ((0.7 + 0.1 + 0.2) == 1) << endl;     //output is 1
Copier après la connexion

À notre grand étonnement, ces deux déclarations produisent des résultats différents. Pourquoi en est-il ainsi ?

L'explication réside dans les limites de la représentation en virgule flottante. Les nombres à virgule flottante sont stockés comme une approximation de la valeur réelle, introduisant un certain degré d'imprécision. Lors de l'ajout de plusieurs valeurs à virgule flottante, l'ordre des opérations est important en raison des erreurs accumulées et des arrondis.

Comme l'article standard référencé, « Ce que tout informaticien devrait savoir sur l'arithmétique à virgule flottante », l'indique à juste titre :

"En raison d'erreurs d'arrondi, les lois associatives de l'algèbre ne s'appliquent pas nécessairement aux nombres à virgule flottante."

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!

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