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

Вниз

округлить число   Найти похожие ветки 

 
Marat ©   (2006-12-21 07:35) [0]

Мне необходимо, чтобы в выборке
select 1/4
результат округлялся до максимума, т.е. вместо 0 мне необходимо получить 1


 
PZ   (2006-12-21 10:16) [1]

Как вариант можно предложить следующее:

Var
 C : Integer;
 R : Real;

 If Round(R) < R then C := Round(R)+1
   else C := Round(R);


 
Stanislav ©   (2006-12-21 10:25) [2]

math.SetRoundMode(rmUp) ;
showmessage(FloatToStr(math.RoundTo(5.1,0)));


 
sniknik ©   (2006-12-21 10:28) [3]

SELECT CInt(1/4+0.5)


 
Stanislav ©   (2006-12-21 10:40) [4]

Marat ©   (21.12.06 07:35)  
извеняюсь  select не заметил, PZ наверное тоже...


 
ЮЮ ©   (2006-12-21 10:45) [5]

Select CEILING(0.25)


 
Desdechado ©   (2006-12-21 10:53) [6]

Trunc(x)+1


 
ЮЮ ©   (2006-12-21 10:58) [7]

CInt(1/4+0.5)
CEILING(0.25)
Trunc(x)+1

Могуч и разнообразен язык SQL. Особенно на разных серверах. :)


 
Marat ©   (2006-12-21 11:16) [8]

запрос из MS SQL 2000
select a/b from...inner join...
где a, b ненулевые поля (Integer) из разных таблиц.
результат   хочу
1                1
2,5              3
1,2              2
4,1              5
7                 7
...               ...
можно так или нет?


 
Marat ©   (2006-12-21 11:17) [9]

как сделать в проекте- знаю.
можно ли сразу из запроса?


 
ЮЮ ©   (2006-12-21 11:21) [10]

CEILING(a/b)


 
Marat ©   (2006-12-21 11:27) [11]

а почему в анализере делаю
select ceiling(1/4)
0
а если
select ceiling(0.25)
1
???
все получилось, просто интересно.


 
ЮЮ ©   (2006-12-21 11:35) [12]

потому, что 1 / 4 и 1.0 / 4 разного типа результаты, наверное.


 
Marat ©   (2006-12-21 11:42) [13]

спасибо.
раньше считал что 1/4=0.25
оказывается не всегда так!


 
Anatoly Podgoretsky ©   (2006-12-21 11:53) [14]

> Marat  (21.12.2006 11:27:11)  [11]

Потому что надо читать сопровождающую документацию, объем ее настолько большой, что на форуме не выучишь и одного процента, а понять теорию баз и компьютерную математику вообще не удастся.


 
Anatoly Podgoretsky ©   (2006-12-21 12:01) [15]

> Marat  (21.12.2006 11:42:13)  [13]

Компьютерная Математика говорит, что Integer(1)/Integer(4)=Integer(0), а Float(1)/Integer(4)=Float(0.25)
Ты должен явно указывать тип значений, если хочешь получить явный результат, при неявном и получаешь неявный и удивляешься. Даже не бумаге делая данные расчеты ты неявно в уме приводишь их к Float, но эта неявность не совпадает с неявностью интерпритатора SQL сервера.



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

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

Наверх




Память: 0.49 MB
Время: 0.047 c
15-1166456161
Ringo
2006-12-18 18:36
2007.01.14
О вредном излучении из системных блоков.


2-1166737977
lluha
2006-12-22 00:52
2007.01.14
DBGrid


4-1156830030
DelphiLexx
2006-08-29 09:40
2007.01.14
Как узнать использует ли приложение DoubleBuffered


15-1167074471
RusS
2006-12-25 22:21
2007.01.14
алгоритм


8-1148304118
F@R@_on
2006-05-22 17:21
2007.01.14
Иконки