Форум: "Начинающим";
Текущий архив: 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