Arduino round to nearest 0.5
It is a very bad idea to use float.
That being said. multiply by 2 and do a standard round.
Then divide back by 2.

For example:

1.34     *2 = 2.68
round(2.68) = 3
3        /2 = 1.5


and 

32.78    *2 = 65.56
round(65.56)= 66
66       /2 = 33