Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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