5

Should I be writing CGFloat values with postfix f or not?

CGFloat fValue = 1.2;

vs.

CGFloat fValue = 1.2f;

I know that this postfix define a float value. But is it necessary, does it make sense, are there any performance differences between using those two or is this just visual presentation so you can quickly define value type (e.g. float in this case)?

4

2 に答える 2

6

1.2 はdouble; つまり、64 ビットの倍精度浮動小数点数です。

1.2f はfloat; つまり、32 ビットの単精度浮動小数点数です。

パフォーマンスに関しては、コンパイラが必要に応じてリテラルをfloattodoubleおよびdoubletoに変換するため、問題ありませんfloat。ただし、関数から浮動小数点数を代入する場合は、コンパイラの警告を回避するためにキャストする必要があります。

于 2013-03-14T09:14:21.367 に答える
0

基本的な違いは次のとおりです。

1.0 または 1. は double 定数です

1.0f は float 定数です

接尾辞がない場合、10 進数を含むリテラル (123.0) は倍精度浮動小数点数として扱われます。

それを単精度の変数またはパラメーターに代入または渡すと、コンパイラーは警告を発行します (すべきです)。追加fは、リテラルを単精度浮動小数点数として扱うようにコンパイラーに指示します。

于 2013-03-20T04:46:30.083 に答える