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

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

Работа с нулем в FB 1.5


}|{yk ©   (2005-02-15 17:31:00) 

Вобщем, есть такое поле
CHAR(4) CHARACTER SET WIN1251
COMPUTED BY (case  WHEN free_cash>0 then 'free'  WHEN free_cash=0 then 'full'  when free_cash<0 then 'over' end)

Заполняется оно триггером при изменении в дочерней таблице
Но в это поле иногда попадает не 0, что-то вроде 1,234*Е-13, или наоборот -2,34*Е-13. Как бы это сделать правильно?
Не предлагать хранить все в копейках.


Johnmen   (2005-02-15 17:51:00) [1]

Либо всё-таки поменять на интегер, что соответствует логиге,
либо бороться со своей принципиальной ошибкой, напр.
WHEN CAST(free_cash AS INTEGER)>0 then


}|{yk   (2005-02-15 17:48:00) [2]

можно. Но уже сделано, менять не хочу.
3 диалект, тип DOUBLE PRECISION
Можно использовать round из к.-л. библиотеки, но как-то не хочется


Дмитрий В. Белькевич   (2005-02-15 17:46:00) [3]

Или в интеджере? Или округлять, перед тем, как заносить в чар?


msguns   (2005-02-15 17:43:00) [4]

У этого поля есть 3 состояния: положительное, отрицательное и нуль. Почему бы его не сделать Int и держать там 1,0 или -1 соответственно ?


Johnmen   (2005-02-15 17:42:00) [5]

Осталось выяснить тип поля free_cash и диалект БД...


Наверх

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