Евгений Семашко, Это не тонкости и приколы, а часть спецификации языка.
(Вот
ссылка, если интересно).
Если в двух словах, для каждого оператора предусмотрено несколько перегрузок, в зависимости от типа операндов. В частности, для деления (подробнее
здесь) предусмотрено целочисленное деление, деление с плавающей точкой (IEEE 754) и десятичное.
Здесь, поскольку оба операнда одного типа, применяется целочисленное деление. Чтобы использовать другую перегрузку, необходимо, чтобы хотя бы один из операндов был числом с плавающей точкой или десятичным.
7 / 2 = 3
7f / 2 = 3.5