Floating point numbers (AKA "floats", "doubles" or "real numbers") can be
specified using any of the following syntaxes:
Formally:
The size of a float is platform-dependent,
although a maximum of ~1.8e308 with a precision of roughly 14
decimal digits is a common value (that's 64 bit IEEE format).
| Floating point precision |
It is quite usual that simple decimal fractions like
0.1 or 0.7 cannot be
converted into their internal binary counterparts without a
little loss of precision. This can lead to confusing results: for
example, floor((0.1+0.7)*10) will usually
return 7 instead of the expected
8 as the result of the internal representation
really being something like 7.9999999999....
This is related to the fact that it is impossible to exactly
express some fractions in decimal notation with a finite number
of digits. For instance, 1/3 in decimal form
becomes 0.3333333. . ..
So never trust floating number results to the last digit and
never compare floating point numbers for equality. If you really
need higher precision, you should use the arbitrary precision math functions
or gmp functions instead.
|
For information on when and how strings are converted to floats,
see the section titled String
conversion to numbers. For values of other types, the conversion
is the same as if the value would have been converted to integer
and then to float. See the Converting
to integer section for more information.
As of PHP 5, notice is thrown if you try to convert object to float.