В чем разница между «1.0f»? и «1f»?

Как поклонник Джона Кармака, я читал общедоступный документ 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 к вашему объявлению значения с плавающей запятой меняет дело?

11

Решение

Но есть ли случай, когда добавление конечных 0 к вашему объявлению значения с плавающей запятой меняет дело?

Единственная «вещь», которая добавит ноль, — это удобочитаемость. Результирующий код будет точно таким же, потому что компиляторам все равно, но читателю-человеку будет легче читать константу с нулем на месте.

12

Другие решения

Других решений пока нет …