Heim > Backend-Entwicklung > C++ > Warum führt die C-Ganzzahldivision zu Null und wie kann eine Gleitkommadivision erreicht werden?

Warum führt die C-Ganzzahldivision zu Null und wie kann eine Gleitkommadivision erreicht werden?

Susan Sarandon
Freigeben: 2024-12-16 17:31:10
Original
452 Leute haben es durchsucht

Why Does C   Integer Division Result in Zero, and How Can Floating-Point Division Be Achieved?

Gleitkommadivision in C verstehen

Obwohl die Division (3/5) einer Double-Variablen zugewiesen ist, ergibt sie im bereitgestellten Ergebnis Null Code aufgrund der Ganzzahldivision. C wertet die Operanden in einem Divisionsausdruck standardmäßig als Ganzzahlen aus. Da 3 und 5 beide ganze Zahlen sind, ergibt ihre Division ein ganzzahliges Ergebnis, das Null ist.

Um eine Gleitkommadivision durchzuführen, bei der das Ergebnis die Bruchgenauigkeit beibehält, sollte mindestens ein Operand ein Gleitkommaliteral sein . Dies zwingt den Compiler dazu, die Division als Gleitkommaoperation zu behandeln und ein Gleitkommaergebnis zurückzugeben.

Im Originalcode könnte man ihn wie folgt ändern, um die beabsichtigte Gleitkommadivision zu erreichen:

#include <iostream>

int main(int argc, char** argv)
{
  double f = 3.0 / 5;  // Change both operands to floating-point literals
  std::cout << f;
  return 0;
}
Nach dem Login kopieren

Durch die Umwandlung eines Operanden (in diesem Fall 3.0) in ein Gleitkomma-Literal führt der Compiler eine Gleitkomma-Division durch und das Ergebnis spiegelt den Bruch korrekt wider Wert.

Das obige ist der detaillierte Inhalt vonWarum führt die C-Ganzzahldivision zu Null und wie kann eine Gleitkommadivision erreicht werden?. 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