float fmod ( float x, float y )
Du musst das Ergebnis auch als float überprüfen. Zur Umwandlung in einen int musst Du vorher 0.5 hinzuaddieren, da beim casten immer abgerundet wird.
Hallo,
ich versuche gerade, fmod() zu verwenden, um den Rest einer Division zu erhalten, aber es klappt teilweise nicht.
Mit fmod(47,10) müsste ich als Ergebnis 7 erhalten, bekomme aber 6!
fmod(32,10) liefert dagegen das korrekte Ergebnis 2.
Habt ihr ne Idee, wo der Fehler ist?
Gruß
Spurius
float fmod ( float x, float y )
Du musst das Ergebnis auch als float überprüfen. Zur Umwandlung in einen int musst Du vorher 0.5 hinzuaddieren, da beim casten immer abgerundet wird.
Hallo,
vielen Dank, das wars! Was genau ist "casten" ?
Typumwandlung, z.B.
Hier finden mehrere implizite Typumwandlungen statt:Code:int i = 0; i = fmod(42, 4);
42 und 4 werden von int nach float gewandelt, und das Ergebnis von fmod wird von float nach int gewandelt, wobei die Nachkommastellen weggeworgen werden.
int i=47%10; -> i=7
müsst doch für ganzzahlen besser geeignet sein oder?
gruesse
Das ist richtig. Laut Topic will er's aber für Fließkommazahlen wissen. Also z.B.
Code:float remainder = fmod(42.3, 7.6);
Lesezeichen