Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Округление значений в IB   Найти похожие ветки 

 
samumka ©   (2004-08-30 15:13) [0]

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


 
Desdechado ©   (2004-08-30 15:21) [1]

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


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

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


 
Rule ©   (2004-08-30 17:14) [3]

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


 
Vemer ©   (2004-08-30 18:17) [4]

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


 
Zacho ©   (2004-08-30 19:03) [5]

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


 
Vemer ©   (2004-08-30 19:20) [6]

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



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
4-1092402037
Shuma
2004-08-13 17:00
2004.09.26
Проблемы с DLL


3-1093761069
Митяй
2004-08-29 10:31
2004.09.26
Незнакомое расширение...


4-1092735230
surkis
2004-08-17 13:33
2004.09.26
Cлужбы и БД


1-1094599162
Jetus
2004-09-08 03:19
2004.09.26
MSI и Delphi


1-1093969695
Synochka
2004-08-31 20:28
2004.09.26
ListBox, CheckListBox и Windows XP