Heim > Backend-Entwicklung > C++ > Warum führt die Ganzzahldivision in C bei Verwendung von Doubles zu unerwarteten Null-Ergebnissen?

Warum führt die Ganzzahldivision in C bei Verwendung von Doubles zu unerwarteten Null-Ergebnissen?

Linda Hamilton
Freigeben: 2024-12-02 05:46:12
Original
322 Leute haben es durchsucht

Why Does Integer Division in C   Produce Unexpected Zero Results When Using Doubles?

Verwirrung des Divisionsergebnisses: Warum ergibt 3/5 Null, obwohl es als Double gespeichert wird?

Beim Versuch, eine Division durchzuführen (/) In C ist es wichtig, die beteiligten Datentypen zu verstehen. Die Division von Ganzzahlen (int-Typen) führt zu einer Ganzzahldivision, bei der der Bruchteil verworfen wird. Dies kann jedoch beim Umgang mit Doubles zu unerwarteten Ergebnissen führen.

Beispiel:

Beachten Sie den folgenden Code:

#include <iostream>

int main() {
  double f = 3 / 5;
  std::cout << f;
  return 0;
}
Nach dem Login kopieren

Unerwartete Ausgabe:

Zur Überraschung vieler gibt dieser Code 0 statt der erwarteten aus 0.6.

Erklärung:

Der Divisionsoperator (/) führt eine Ganzzahldivision durch, da sowohl 3 als auch 5 ganze Zahlen sind. Um dies zu beheben, stellen Sie sicher, dass ein Operand eine reelle Zahl ist. Dies kann durch Hinzufügen eines Dezimalpunkts erreicht werden, wie in dieser korrigierten Version zu sehen ist:

double f = 3.0 / 5;
Nach dem Login kopieren

Diese Änderung zwingt den Compiler zur Durchführung einer Gleitkommadivision, was korrekt zu 0,6 führt.

Fazit:

Bei der Durchführung einer Division mit Doppeln ist es wichtig, die beteiligten Datentypen zu berücksichtigen. Durch die Verwendung von Gleitkommaoperanden wird sichergestellt, dass das Ergebnis seinen Bruchteil beibehält und zum gewünschten Ergebnis führt.

Das obige ist der detaillierte Inhalt vonWarum führt die Ganzzahldivision in C bei Verwendung von Doubles zu unerwarteten Null-Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage