Floats do not store their data in database 10, they store it in database 2. Thus, 4611690000000000000 is actually not a very round number. This is a binary representation:
100000000000000000000111001111100001000001110001010000000000000.
As you can see, writing takes a lot of data. However, the number that is actually printed has the following binary representation:
11111111111111111111111111111111111111111111111111111111111100
As you can see, the multidimensional number and the fact that it is disconnected by 4 from the power of two is most likely due to rounding in the convert-to-base-10 algorithm.
As an example of a number that does not fit in the float, try the number you expected:
4611690000000000000
You will notice that it will come out very differently.
Ianpudney
source share