Implicit conversion from float -40.5 to int loses precision