"1.0f"和"1.f"有什么区别?

What is the difference between "1.0f" and "1.f"?

本文关键字:区别 什么 0f      更新时间:2023-10-16

作为John Carmack的崇拜者,我正在阅读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;

这些有什么不同?

在第一个例子中,我可以理解两者之间的区别(后者在后台进行从双到浮点的转换(,尽管我怀疑它只需要一个不愚蠢的编译器来捕获,并且会生成相同的字节码,因为没有运行时的区别。

但是,在浮点值声明中添加尾随的0会改变情况吗?

但是,在浮点值声明中添加尾随的0会改变情况吗?

添加零会改变的唯一"事情"是可读性。生成的代码将完全相同,因为编译器不在乎,但带有零的常量将更容易被人类读者读取。