тонкости в типах данных

ЧАстые Вопросы и Ответы

Модераторы: kdv, CyberMax

Ответить
makaveli
Сообщения: 13
Зарегистрирован: 21 июл 2006, 14:06

тонкости в типах данных

Сообщение makaveli » 11 сен 2006, 12:42

Подскажите пожалуйста, каким образом можно записать в базу значение типа float=4.5127648. Дело в том, что при такой записи данные урезаются до 4.512. Может где-то задается разрядность?

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 11 сен 2006, 12:53

самый обычный дабл пресижн не канает разве?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 11 сен 2006, 12:54

Учись задавать вопросы ;)
Кем обрезается? Как ты проверил, что обрезаются?

makaveli
Сообщения: 13
Зарегистрирован: 21 июл 2006, 14:06

Сообщение makaveli » 11 сен 2006, 13:09

Ivan_Pisarevsky писал(а):самый обычный дабл пресижн не канает разве?
ввожу 4.5127648 а при double precision получаю 4,5127649307251.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 11 сен 2006, 13:30

Какой диалект/сервер?

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 11 сен 2006, 13:31

Редкая десятичная дробь может быть переведа в двоичную форму без потери точности (почему можно почитать мануал тут же на сайте), если формат фиксирован храни как децимал/нумерик, если нумерик не подходит, то остается дабл пресижн (без погрешности не обойтись, но она существенно меньше, чем у флоат) либо хранить в виде строки, а обрабатывать своими библиотеками.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 сен 2006, 15:24

ввожу 4.5127648 а при double precision получаю 4,5127649307251.
срочно читать

http://www.delphikingdom.com/asp/viewit ... alogID=374

от начала и до конца.

p.s. single = float, double = double precision

Ответить