Implicit conversion from float -46.5 to int loses precision