Heim > Backend-Entwicklung > C++ > Hauptteil

Gleitkommaarithmetik und Assoziativität in C, C++ und Java

王林
Freigeben: 2023-08-28 09:09:11
nach vorne
1198 Leute haben es durchsucht

Gleitkommaarithmetik und Assoziativität in C, C++ und Java

In C, C++ und Java verwenden wir Gleitkommazahlen, um einige mathematische Operationen auszuführen. Jetzt prüfen wir, ob Gleitkommazahlen den Assoziativitätsregeln folgen.

Die Antwort ist nein. In manchen Fällen folgen Gleitkommazahlen nicht den Assoziativitätsregeln. Hier sehen wir einige Beispiele.

Beispielcode

#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;
}
Nach dem Login kopieren

Ausgabe

x + (y + z) is: 0
(x + y) + z is 1
Nach dem Login kopieren

Hier können wir sehen, dass die Ergebnisse nicht gleich sind, aber theoretisch können wir sagen, dass sie immer 1 sind. Nun stellt sich die Frage, wie geht das?

Im ersten Fall wird x + (y + z), (500000000 + 1) ausgeführt. Aber für Gleitkommazahlen Nach dem Runden wird wieder auf 500000000 umgerechnet. Fügen Sie nun -500000000 hinzu und es wird 0. Im zweiten Ausdruck ist der Wert (-500000000 + 500000000) = 0, dann wird 1 hinzugefügt, also das Endergebnis Das Ergebnis ist 1.

Wenn wir ganze Zahlen verwenden, geben beide Ausdrücke das gleiche Ergebnis zurück, nämlich 1.

Das obige ist der detaillierte Inhalt vonGleitkommaarithmetik und Assoziativität in C, C++ und Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!