...
When the value to be represented is too small to encode normally, it is encoded in denormalized form, indicated by an exponent value of Float.MIN_EXPONENT - 1
or Double.MIN_EXPONENT - 1
. Denormalized floating point numbers have an assumed 0 in the ones place, and have zero or more leading zeros in represented portion of their mantissa. These leading zero bits no longer function as significant bits of precision; consequently, the total precision of denormalized floating point numbers is less than that of normalized floating point numbers. Note that even use of normalized numbers where precision is required can pose a risk. See recommendation NUM07-J. Avoid using floating-point numbers when precise computation is required. for more information.
...
NUM07-J. Avoid using floating-point numbers when precise computation is required 03. Numeric Types and Operations (NUM) NUM09-J. Use the strictfp modifier for floating point calculation consistency across platforms