FLOAT is a 32 bit type with, as the name suggests, floating point. The higher the value, the lower the absolute accuracy.
512659648 is large enough to introduce dozens of errors.
Update:
In IEEE-754 (which is what FLOAT ), data is stored in 32 bits: 1 bit sign, 8 bit binary exponent and 23 bit valueand.
The indicator shows the lowest power 2 ( 28 in your case or 268435456 ).
Significance is a binary fraction. It can store numbers from 1 to 2 with an accuracy of 2^-23 . In your case, this is 1.11101000111010010000110 , or ~ 1.9098060 in decimal notation.
The number is calculated as the product of the exponent and significance.
Given all this, accuracy 2 ^ (28 - 23) = 2 ^ 5 = 32 for numbers of this order ( 2^28 to 2^29 ).
source share