科学的表記法(例:1e9
)を使用してコード内の数値をハードコードすると、その数値の型は何(int、long、float、double ..)になりますか?科学記法はintまたはfloatとして解釈されますか?
仮数または指数が浮動小数点数の場合、明らかに整数になることはできませんが、上記の場合はどうなりますか?
科学的表記法(例:1e9
)を使用してコード内の数値をハードコードすると、その数値の型は何(int、long、float、double ..)になりますか?科学記法はintまたはfloatとして解釈されますか?
仮数または指数が浮動小数点数の場合、明らかに整数になることはできませんが、上記の場合はどうなりますか?
e
は浮動小数点リテラルになります。 JLS(§3.10.2. Floating-Point Literals)から:それはASCII文字F
又はf
接尾辞いる場合
浮動小数点リテラル型
float
です。そうでない場合、そのタイプはdouble
であり、任意にASCII文字D
またはd
(§4.2.3)の接尾辞を付けることができます。
したがって、1e9d
タイプdouble
の1e9
、そのまま。一方、1e9f
のタイプはfloat
です。
これらは、通常ダブルです。 f
(F
)の後ろに置くと、フロートです。
double d = 1e9;
float f = 1e9f;
それはfloating point literalとみなされ、末尾f
またはF
せずにそれがdouble
になります。
Integer literalsは科学的表記法を使用できません。
'f'または 'F'を使用しないと、リテラルが浮動小数点になります。
Doubleを使用する方が良いです。それは10進浮動小数点を持っているので、科学的表記法に密接に関連したコンピュータ算術システムです。 たとえば、 0.000 000 007 51 は7.51×10-9です。 intをintとして使用すると、7.51は7になりますが、intを使用すると7.51になります。