浮点“f”指示符表示什么?

时间:2011-02-08 13:40:52

标签: objective-c

我想知道是否有人可以澄清浮点数背后的“f”用于表示什么?

float myFloat = 12.0f;

如同:

float myFloat = 12.0;

我已经看过很多次,但很难在网上或书中找到解释。我假设它是从C支持一致性的另一种语言延续的东西,或者在评估数学时它可以作为编译器的指令。

我很好奇“f”与使用“。”之间是否有任何实际区别。表示浮点数?

2 个答案:

答案 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位浮点时会有更多的问题。