Вы всегда должны использовать соответствующие математические библиотеки при работе с числами с плавающей запятой. Поплавок может быть только очень близким приближением к фактическому значению, и это может вызвать странность.
Например, 5f может быть приблизительно равен 4.9999999 ... и если вы попытаетесь привести непосредственно к int, оно будет усечено до 4.
Чтобы понять почему, вам следует поискать числа с плавающей точкой в Википедии. Короче говоря, вместо того, чтобы хранить число в виде прямой последовательности битов типа int, оно хранится в двух частях. Есть «дробь» и показатель степени, где конечное значение с плавающей запятой - это дробь * (база ^ экспонента).