Причина включения типа с плавающей запятой в некоторой степени историческая: он представляет стандартное представление IEEE с плавающей запятой со времен, когда сокращение на 4 байта от размера числа с плавающей запятой в обмен на чрезвычайно низкую точность было компромиссом, который стоит сделать .
В настоящее время использование поплавка довольно ограничено. Но, например, наличие типа данных может облегчить написание кода, который требует взаимодействия со старыми системами, которые используют float.
Что касается производительности, я думаю, что float и double по существу идентичны , за исключением производительности делений . Как правило, независимо от того, что вы используете, процессор конвертирует в свой внутренний формат, выполняет вычисления, а затем снова выполняет обратное преобразование, и фактический расчет фактически занимает фиксированное время. В случае делений, по крайней мере, на процессорах Intel, насколько я помню, время, затрачиваемое на деление, обычно составляет один тактовый цикл на 2 бита точности, так что если вы используете float или double, то разница будет иметь место.
Если у вас действительно нет веской причины для его использования в новом коде, я бы вообще избегал 'float'.