我是否应该使用后缀编写 CGFloat 值f
?
CGFloat fValue = 1.2;
对比
CGFloat fValue = 1.2f;
我知道这个后缀定义了一个浮点值。但是是否有必要,是否有意义,使用这两者之间是否有任何性能差异,或者这只是视觉呈现,以便您可以快速定义值类型(例如,在这种情况下为浮点数)?
我是否应该使用后缀编写 CGFloat 值f
?
CGFloat fValue = 1.2;
对比
CGFloat fValue = 1.2f;
我知道这个后缀定义了一个浮点值。但是是否有必要,是否有意义,使用这两者之间是否有任何性能差异,或者这只是视觉呈现,以便您可以快速定义值类型(例如,在这种情况下为浮点数)?
1.2 是一个double
;即64位双精度浮点数。
1.2f 是一个float
;即32位单精度浮点数。
就性能而言,这并不重要,因为编译器会根据需要将文字从float
to转换double
为double
to float
。但是,在从函数中分配浮点数时,您很可能需要进行强制转换以避免编译器警告。
基本区别如下:
1.0 或 1. 是双常数
1.0f 是一个浮点常数
如果没有后缀,其中包含小数的文字 (123.0) 将被视为双精度浮点数。
如果您将其分配或传递给单精度变量或参数,编译器将(应该)发出警告。附加f
告诉编译器您希望将文字视为单精度浮点数。