我想知道是否有人可以澄清浮点数背后的“f”用于表示什么?
float myFloat = 12.0f;
如同:
float myFloat = 12.0;
我已经看过很多次,但很难在网上或书中找到解释。我假设它是从C支持一致性的另一种语言延续的东西,或者在评估数学时它可以作为编译器的指令。
我很好奇“f”与使用“。”之间是否有任何实际区别。表示浮点数?
答案 0 :(得分:4)
这意味着它是单精度float
而不是双精度double
。
来自C99标准:
未加浮动的常量类型为double。如果以字母f或F为后缀,则表示类型为float。
Objective-C基于C,可能不是C99,但是这个约定在C中已经存在 long 时间。
答案 1 :(得分:0)
从float转换为double时,有时会出现性能问题,您可以使用'f'来避免它们。而且,当说一个平方根,罪,cos等时,一个疯狂的猜测会说
浮动答案= sqrt(12.0f)
比
慢约10倍float answer = sqrtf(12.0f)
如果您正在进行数百万次这类操作,那么手机和iPad真的会有所不同。如果你需要速度并且可以处理较低的分辨率,请保持浮动状态。如果你不擅长数学,或者在你的程序中没有使用太多数学,那么在任何地方都要使用double,因为使用低精度32位浮点时会有更多的问题。