The i in itoa() means integer (integer to ascii) so won’t work for a float
There is a function dtostrf() that will do that for floating point numbers
As mentioned above sprintf() will also work at the expense of roughly 1.5k of program memory as it’s a large function