Зачем преобразовывать в float?
Потому что изначально число с запятой типа double, и что бы дать понять компилятору что это именно float нужно писать (float)2.8 или же 2.8f
Что бы точно перевелось в флоат.