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; }
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!