имайте предвид, че float
е дефектен тип данни, когато става въпрос за прецизност. Ако представлявате 12
като float, ще получите 11.99999999999998
или нещо подобно.
'38.03'
може да се преобразува в десетичен или друг тип данни, който е по-прецизен (в зависимост от RDBMS, аз съм общ тук) и ще се различава от плаващата стойност.
float е 32 бита, ниска точност. Double работи много по-добре, тъй като е 64-битов тип данни. Десетичните типове данни в някои системи са 128-битови цифрови типове данни за съхраняване на много точни числови стойности и обикновено се използват за деноминиране на пари.
И пропуснете навика да сравнявате с помощта на =
оператор на float
стойности. Плаващите стойности се използват за приблизителни и бързи изчисления и само сравнение с диапазон е приемливо за проверка на стойността на float
. Това е валидно за всяка отделна система.