If I hardcode a number in my code using the scientific notation (e.g. 1e9
) what will the type of that number be (int, long, float, double..)?
When the significand or the exponent are floating point numbers it can't be an integer obviously, but what in the above case?
It is better to use Double. Because a it has decimal floating point is a computer arithmetic system closely related to scientific notation. for example: 0.000 000 007 51 in scientific notation it is 7.51×10-9. when you use it as int, 7.51 would be 7 while when you use int it will be 7.51.
These will usually be of type double. If you put an
f
(ofF
) behind it, it's a float.It will be considered as a floating point literal, and without a trailing
f
orF
it will be adouble
.Integer literals can't use scientific notation.
It'll be 'double' unless you use 'f' or 'F' then it'll be float literal.
The
e
makes it a floating-point literal. From the JLS (§3.10.2. Floating-Point Literals):Therefore,
1e9
of typedouble
, as is1e9d
. On the other hand,1e9f
is of typefloat
.