Как поклонник Джона Кармака, я читал общедоступный документ Id Tech Coding Conventions (по адресу ftp://ftp.idsoftware.com/idstuff/doom3/source/CodeStyleConventions.doc если вам интересно) и натолкнулся на конвенцию я не совсем понял:
Используйте спецификацию точности для значений с плавающей запятой, если нет явной необходимости в двойном.
float f = 0.5f
Вместо
float f = 0.5;
А также
float f = 1.0f;
Вместо
float f = 1.f;
Чем они отличаются?
Я могу понять разницу между ними в первом примере (последний выполняет преобразование типа double-to-float под капотом), хотя я подозреваю, что для ловли нужен только не тупой компилятор, и он будет производить тот же байт-код, без разницы во время выполнения.
Но есть ли случай, когда добавление конечных 0 к вашему объявлению значения с плавающей запятой меняет дело?
Но есть ли случай, когда добавление конечных 0 к вашему объявлению значения с плавающей запятой меняет дело?
Единственная «вещь», которая добавит ноль, — это удобочитаемость. Результирующий код будет точно таким же, потому что компиляторам все равно, но читателю-человеку будет легче читать константу с нулем на месте.
Других решений пока нет …