Почему float округляет?
Нет никакого округления float. Вычисленное значение изначально является целым - потому что целыми являются все части выражения. Замените /3 на /3.0.
Потому что все операции у вас производятся с целыми числами, делите на число с точкой