f2l
Operation
Convert float
to long
Forms
f2l = 140 (0x8c)
Stack
..., value ..., result.word1, result.word2
Description
The value on the top of the operand stack must be of type float
. It is popped from the operand stack and converted to a long
. The result is pushed onto the operand stack:
- If the value is NaN, the result of the conversion is a
long
0.
- Otherwise, if the value is not an infinity, it is rounded to an integer value V, rounding towards zero using IEEE 754 round-towards-zero mode. If this integer value V can be represented as a
long
, then the result is the long
value V.
- Otherwise, either the value must be too small (a negative value of large magnitude or negative infinity), and the result is the smallest representable value of type
long
, or the value must be too large (a positive value of large magnitude or positive infinity), and the result is the largest representable value of type long
.
Notes
The f2l instruction performs a narrowing primitive conversion (§2.6.3). It may lose information about the overall magnitude of value, and may also lose precision.