FLOAT
- это 32
-битный тип с, как следует из названия, с плавающей точкой.Чем выше значение, тем меньше абсолютная точность.
512659648
достаточно велико, чтобы вводить ошибки в десятках.
Update:
In IEEE-754
(это то, чем является FLOAT
), данные хранятся в 32
битах: 1
-битном знаке, 8
-битном двоичном показателе и 23
-битном значении.
Показатель степени показываетвы ближайшая наименьшая сила 2
(28
в вашем случае или 268435456
).
Значение и представляет собой двоичную дробь.Он может хранить числа от 1
до 2
с точностью до 2^-23
.В вашем случае это 1.11101000111010010000110
или ~ 1.9098060
в десятичной записи.
Число рассчитывается как произведение показателя степени и значения.
Учитывая все это, точность равна 2 ^ (28 - 23) = 2 ^ 5 = 32
для номеров этого заказа (2^28
до 2^29
).