![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Округление значений в 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]любые дробные числа теряют точность
как сильно теряют, зависит от типа данный (длины и способа представления числа в памяти)