Floating-point numbers are like real numbers in mathematics,
for example, 3.14159, -0.000001. Java has two kinds of floating-point
double, both stored in IEEE-754 format.
The default type when you write a floating-point literal is
|name||bytes||bits||approximate||in decimal digits|
|float||4||32||+/- 3.4 * 1038||6-7|
|double||8||64||+/- 1.8 * 10308||15|
Because there are only a limited number of bits in each floating-point type, some numbers are inexact, just as the decimal system can not represent some numbers exactly, for example 1/3. The most troublesome of these is that 1/10 can not be represented exactly in binary.
There are two types of notation for floating-point numbers. Any of these numbers
can be followed by "F" (or "f") to make it a
float instead of the
double. A sign (+ or -) may precede the number.
No exceptions are generated by floating-point operations. Instead of an interruption in execution, the result of an operation may be positive infinity, negative infinity, or NaN (not a number). Division by zero or overflow produce infinity. Subtracting two infinities produces a NaN. Use methods in the wrapper classes (Float or Double) to test for these values.