Narrower primitive types can may be cast to wider types without affecting the magnitude of numeric values. See JLS, Section 5.1.2, "Widening Primitive Conversion" for more information. Conversion from int
or long
to float
, or long
to double
can may lead to loss of precision (loss of least significant bits). No runtime exception occurs despite this loss. Also see guideline INT10-J. Be aware of integer promotion behavior.
Note that conversions from float
to double
can also lose information about the overall magnitude of the converted value. (See guideline FLP04-J. Use the strictfp modifier for floating point calculation consistency for additional information.)
...