Implicit conversion from float -31.5 to int loses precision