[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Какой тип данных выбрать?
skater4
всем привет. есть колонка типа float, в ней запись со значением 0.0001. запрос select bla-bla-bla-bla where value >= 0.0001 результата не дает, зато при условии value >= 0.000095 все ок. как быть?)
AllesKlar
float не сравнивают на =
float заданный явно и float, полученный расчётно не могут быть равны абсолютно. Ни в одном из языков программирования.
Причина в формате хранения float в памяти.

При сравнении на равенство float наужно использовать следующую формулу
abs( a -b ) < допустимый_предел_погрешности

_____________
[продано копирайтерам]
depp
numeric
Invis1ble
для начала надо написать, какая СУБД используется

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

AllesKlar
depp
Цитата (depp @ 9.12.2014 - 02:54)
numeric
Цитата
Величины типов DECIMAL и NUMERIC хранятся как строки, а не как двоичные числа с плавающей точкой, чтобы сохранить точность представления этих величин в десятичном виде. При этом используется по одному символу строки для каждого разряда хранимой величины, для десятичного знака (если масштаб > 0) и для знака `-' (для отрицательных чисел).


Думаю, дальше объяснять не нужно.

_____________
[продано копирайтерам]
depp
AllesKlar
поясни
AllesKlar
depp
Цитата
Величины типов DECIMAL и NUMERIC хранятся как строки

Грубо так: 65536 - 2 байта. Но в памяти оно будет занимать 5 байт (по одному байту на строковый символ)
Ну и сами механизмы сравнения, поиска и т.д. дадут все прелести (вернее недостатки) строковых данных

_____________
[продано копирайтерам]
depp
AllesKlar
numeric как раз и придуман для таких задач, как у топикстартера. не вижу смысла в извращениях с float.
AllesKlar
Цитата (depp @ 9.12.2014 - 08:43)
AllesKlar
numeric как раз и придуман для таких задач, как у топикстартера. не вижу смысла в извращениях с float.

оно, как говорится, хозяин-барин.
Кто борется за ресурсы, тот извращается с float, кто борется за легкость разработки, тот использует numeric
Некоторые вообще дату в стрингах хранят.

Ну да ладно, думаю, что ТС получил исчерпывающий ответ на свой вопрос, и теперь выбор за ним.

_____________
[продано копирайтерам]
skater4
всем спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.