2013-03-20 9 views
11

科学的表記法(例:1e9)を使用してコード内の数値をハードコードすると、その数値の型は何(int、long、float、double ..)になりますか?科学記法はintまたはfloatとして解釈されますか?

仮数または指数が浮動小数点数の場合、明らかに整数になることはできませんが、上記の場合はどうなりますか?

答えて

11

eは浮動小数点リテラルになります。 JLS(§3.10.2. Floating-Point Literals)から:それはASCII文字F又はf接尾辞いる場合

浮動小数点リテラル型floatです。そうでない場合、そのタイプはdoubleであり、任意にASCII文字Dまたはd(§4.2.3)の接尾辞を付けることができます。

したがって、1e9dタイプdouble1e9、そのまま。一方、1e9fのタイプはfloatです。

4

これらは、通常ダブルです。 fF)の後ろに置くと、フロートです。

double d = 1e9; 
float f = 1e9f; 
3

'f'または 'F'を使用しないと、リテラルが浮動小数点になります。

0

Doubleを使用する方が良いです。それは10進浮動小数点を持っているので、科学的表記法に密接に関連したコンピュータ算術システムです。 たとえば、 0.000 000 007 51 は7.51×10-9です。 intをintとして使用すると、7.51は7になりますが、intを使用すると7.51になります。

関連する問題