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.