http://en.wikipedia.org/wiki/Double_precision
The double has only 64 bits of storage, and some of them are used for sign and exponent, so for the fractional part there is a limited number of digits (usually 15). A float has only 32 bits, therefore 8-9 digits of accuracy. Also, some digits cannot be accurately represented using a floating point number, so you can see some rounding errors in your conversions.
source
share