Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.012 c
3-1161858560
Ольга
2006-10-26 14:29
2007.01.14
Возврат значений из хранимой процедуры


15-1166473242
Petr V. Abramov
2006-12-18 23:20
2007.01.14
Маразм крепчает. Да здравствует совок...


2-1166788327
Kostafey
2006-12-22 14:52
2007.01.14
Сложный SQL-запрос


9-1141658314
i)lya
2006-03-06 18:18
2007.01.14
HELP


2-1166679541
Action
2006-12-21 08:39
2007.01.14
Интересный вопрос. Создаю компонент на основе TPanel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский