Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Округление значений в IB [D7, IB6.x]


samumka ©   (2004-08-30 15:13:00) 

Всем доброго здоровия.
Имеем. в программе переменную типа currency или real. Её значение заносим в БД в поле типа FLOAT. (insert into...).
Например, заносим 30,4 (ввожу явно через Tedit), при следующем просмотре это число отображается как 30,999999...3. Где грабли? Подскажите.


Vemer   (2004-08-30 19:20:00) [1]

Только проблема Numeric в том, что при попытке сделать с ним что-то (например сложить несколько) под D опять возникает неточность...


Zacho   (2004-08-30 19:03:00) [2]

Vemer ©   (30.08.04 18:17) [4]
В диалекте 3 - гораздо лучший способ использовать NUMERIC или DECIMAL, для этого они и нужны.


Vemer   (2004-08-30 18:17:00) [3]

Неплохой способ, особенно для денег - хранить в копейках (или мельче если надо) и менять внешний вид на клиенте. По крайней мере потом дебит с кредитом сходится :).


Rule   (2004-08-30 17:14:00) [4]

если хочешь докопатся до сути вещей глянь на ibase.ru была статья по этому поводу


Роман Снегирев   (2004-08-30 15:25:00) [5]

поле типа float использовать не надо, используй Decimal(n,m) в зависимости от того какая точность тебе нужна


Desdechado   (2004-08-30 15:21:00) [6]

любые дробные числа теряют точность
как сильно теряют, зависит от типа данный (длины и способа представления числа в памяти)


Наверх

Титульная страница Поиск, карта сайта Написать письмо