Heim >Backend-Entwicklung >C++ >Warum funktioniert der Moduloperator in C nicht mit Doubles?
Doppelte Werte und die Moduloperation
Bei der Programmierung berechnet der Moduloperator (%) den Rest, wenn eine Zahl durch eine andere geteilt wird. In C führt jedoch der Versuch, die Modulus-Operation auf zwei Gleitkommazahlen mit doppelter Genauigkeit (Doubles) anzuwenden, zu einem Fehler.
Der folgende Code veranschaulicht dieses Problem:
int main() { double x = 6.3; double y = 2; double z = x % y; }
Bei der Kompilierung generiert dieser Code einen Fehler:
error: invalid operands of types 'double' and 'double' to binary 'operator%'
Dieser Fehler tritt auf, weil der Modulus-Operator nur für ganzzahlige Operanden definiert ist. Für Doubles ist die entsprechende Funktion fmod(). Um die Modulus-Operation mit Double-Werten zu verwenden, verwenden Sie fmod() wie folgt:
#include <cmath> int main() { double x = 6.3; double y = 2.0; double z = std::fmod(x, y); }
Das obige ist der detaillierte Inhalt vonWarum funktioniert der Moduloperator in C nicht mit Doubles?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!