I read the JVM specification for the fpstrict modifier but still don’t fully understand what it means.
Can anyone enlighten me?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Basically, it mandates that calculations involving the affected
floatanddoublevariables have to follow the IEEE 754 spec to the letter, including for intermediate results.This has the effect of:
Edit:
More specifically, many modern CPUs use 80 bit floating point arithmetic (“extended precision”) internally. Thus, they can internally represent some numbers in denormalized form that would cause arithmetic overflow or underflow (yielding Infinity or zero, respectively) in 32 or 64bit floats; in borderline cases, 80 bit just allows to retain more precision. When such numbers occur as intermediate results in a calculation, but with an end result inside the range of numbers that can represented by 32/64bit floats, then you get a “more correct” result on machines that use 80bit float arithmetic than on machines that don’t – or in code that uses
strictfp.