Ну, я стараюсь таки обычно только флоатами ограничиваться, а чтобы
не париться и в каждой константе не писать "f", использую
"-fsingle-precision-constant" — так по умолчанию все константы
считаются флоатами без необходимости неявного преобразования из
double. И, конечно, если используется libm, то нужно соответствующие функции для флоатов использовать, чтобы не было, опять же, double promoution. "На всякий пожарный" я еще и "-Wdouble-promotion" втыкаю (а т.к. у меня в DEBUG-режиме -Werror, то такой косяк никак не пропущу).