В чем разница между "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 к объявлению значения с плавающей запятой меняет ситуацию?
Ответы
Ответ 1
Но есть ли случай, когда добавление завершающего 0 к объявлению значения с плавающей запятой меняет ситуацию?
Единственная вещь, которая добавляет нуль, будет читабельна. Результирующий код будет точно таким же, потому что компиляторам все равно, но константа с нулевым значением легче читать читателям.