Java/C++で末尾文字を使用する理由に少し興味がありました。お気に入り、
float f = 23f;
書くこともできます
float f = 23;
どちらも同じ効果。
これは、数学演算で数値をハードコーディングする場合に重要です。
例えば:
5 / 2 == 2
5.0f / 2.0f = 2.5f
5.0 / 2.0 = 2.5 // without the 'f' suffix you have doubles
5.0d / 2.0d = 2.5d // for doubles 'd' can be used as well
また、これらは異なる結果になります。
blah / 3.141592653592 // this returns an accurate double
blah / 3.141592653592f // this returns a less accurate float
これは、2 番目のケース (つまり、変数の型) で型情報を提供できるものが他にあるためです。そのような場合、サフィックスは必要ありません。
ただし、型情報を数値リテラル自体から導出する必要がある場合には、それらが必要になることがあります。たとえば、次の 2 つの式を考えてみましょう。
float f = 23 / 5; // Integer division
対。
float f = 23f / 5; // Floating point division
接尾辞がある場合とない場合では、異なる結果が得られます。