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

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

Как прямо в запросе сделать округление! [D5, D6, IB5.x, IB6.x]


Serg&Sn ©   (2002-09-17 17:20:00) 

Оригинальное поле типа Double округляю через cast as numeric(8,2)
Сам запрос работает. Только вот в TQuery в редакторе полей тип поля получается Integer вместо Float.
UDF писать нельзя так как запретили лазить в базу.
Все нужно сделять в TQuery.
Спасибо.


Johnmen   (2002-09-18 10:42:00) [1]

>Wolf226 © (18.09.02 10:32)

Да, конечно...:)


Wolf226   (2002-09-18 10:32:00) [2]

2 Johnmen у тебя округление до сотен получилось
Ошибочка, нужно так
SELECT CAST(f*100 AS integer)/100


passm   (2002-09-17 17:42:00) [3]

Попробуй еще раз привести в Double.
Т. е. CAST(CAST(X AS DECIMAL(8, 2)) AS DOUBLE).
Смотрится неважно, но в DB2 с аналогичным типом (DECIMAL)просто мука :( - BDE его не любит.


Johnmen   (2002-09-17 17:37:00) [4]

Все верно - все, что менее разрядно, чем numeric(9,2), считается целым...(см.доки)
Примерно так : SELECT CAST(f/100.0 AS integer)*100.0



oss   (2002-09-17 17:31:00) [5]

а через round не пробовал ?


Наверх

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