Maison > développement back-end > C++ > le corps du texte

Arithmétique à virgule flottante et associativité en C, C++ et Java

王林
Libérer: 2023-08-28 09:09:11
avant
1226 Les gens l'ont consulté

Arithmétique à virgule flottante et associativité en C, C++ et Java

En C, C++ et Java, nous utilisons des nombres à virgule flottante pour effectuer certaines opérations mathématiques. Nous allons maintenant vérifier si les nombres à virgule flottante suivent les règles d'associativité.

La réponse est non. Dans certains cas, les nombres à virgule flottante ne suivent pas les règles d'associativité. Nous verrons ici quelques exemples.

Exemple de code

#include<iostream>
using namespace std;
main() {
   float x = -500000000;
   float y = 500000000;
   float z = 1;
   cout << "x + (y + z) is: " << x + (y + z) << endl;
   cout << "(x + y) + z is "<< (x + y) + z << endl;
}
Copier après la connexion

Output

x + (y + z) is: 0
(x + y) + z is 1
Copier après la connexion

Ici on peut voir que les résultats ne sont pas les mêmes, mais en théorie on peut dire qu'ils sont toujours 1. Maintenant, la question se pose, comment cela se fait-il ?

Dans le premier cas, x + (y + z), (500000000 + 1) est en cours d'exécution. Mais pour les nombres à virgule flottante Après arrondi, il est à nouveau converti à 5 000 000 000. Ajoutez maintenant -500000000 et cela devient 0. Dans la deuxième expression, la valeur est (-500000000 + 500000000) = 0, puis 1 est ajouté, donc le résultat final Le résultat est 1.

Si nous utilisons des nombres entiers, les deux expressions renverront le même résultat, qui est 1.

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!

source:tutorialspoint.com
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