На грабельки с плавающей арифметикой ты наступил - код неправильный. Код не только неэффективный и тербующий подключения библиотеки плавающей арифметики в программу, но также есть риск получить неожиданность при преобразовании результата деления к целому. Нужно добавить floor для того, чтобы корректно сэмулироавть целочисленное деление ;)