Еще как в школе учился допустил ту же ошибку, пару дней не мог понять в чем дело. Инета в те времена у меня не было, пришлось своей головой думать. Благо нашел книжку по ассемблеру и глянул как работает операция деления. Сейчас то, все намного проще: неявное преобразование данных защищает от подобного.
Собственно ответ который нужен автору темы: операция деления ВСЕГДА возвращает число с плавающей точкой.
Не имеет значения какой предполагается результат, даже если 4/2 ответом будет 2.0
В вашем случаи для деления можно использовать операцию
div, можно исользовать функции
Round или
Trunc. Может и еще как-то можно, но я не программист и мне в жизни хватает и этих
А еще историческая справка (для общего развития): этот фактор когда-то использовали (во времена турбо паскаля 1.0) для преобразования целого числа в число с плавающей точкой. Так как компилятор считал ошибкой запись (если r:real, а z:integer) r:=z; и надо было писать r:=z/1;