![]() |
![]() |
![]() |
|
как в запросе получить целое чило из дробного? | ☑ | ||
---|---|---|---|---|
0
krava_vlad
07.11.08
✎
13:34
|
ОстаткиНоменклатурыОстатки.КоличествоОстаток / НоменклатураНабор.Количество - мне нужно получить только целое число без округления
|
|||
1
and2
07.11.08
✎
13:36
|
ВЫРАЗИТЬ(<Выражение> КАК <Тип>)
|
|||
2
Helna
07.11.08
✎
13:36
|
Окр(<Число>, <Разрядность>, <Режим округления>)
главное, правильный режим поставь |
|||
3
krava_vlad
07.11.08
✎
13:39
|
(2) А в запросе можно использовать?
|
|||
4
krava_vlad
07.11.08
✎
13:39
|
(1) а как насчет целой части
|
|||
5
and2
07.11.08
✎
13:40
|
(3) а ты попробуй
|
|||
6
and2
07.11.08
✎
13:40
|
ВЫРАЗИТЬ((твоеЧисло-0,5) КАК Число(15,0))
|
|||
7
Sadovnikov
07.11.08
✎
13:41
|
(1) Посмотри, что выдаст
Select Cast(1.5 As Число(10,0)) |
|||
8
krava_vlad
07.11.08
✎
13:41
|
(3) такой функции нету в языке запросов :)
и пробуй тоже результатов не дает |
|||
9
krava_vlad
07.11.08
✎
13:42
|
(6) спасибо щас попробую
|
|||
10
krava_vlad
07.11.08
✎
16:57
|
А в системе задается способ округления?
|
|||
11
krava_vlad
07.11.08
✎
17:10
|
+(10) Можно задать??? Скажите пожалуйста
|
|||
12
and2
07.11.08
✎
17:12
|
(10) ???
в числовом реквизите в каждом есть |
|||
13
Krom
07.11.08
✎
17:12
|
(11), округление оно и есть округление
|
|||
14
Serg_1960
07.11.08
✎
17:14
|
В запросе ВЫРАЗИТЬ() округляет по математическому принципу и управлять округлением (имхо) нельзя
|
|||
15
krava_vlad
07.11.08
✎
17:16
|
А если задать типа Окр(4.5) Что выдаст система по умолчанию?
|
|||
16
krava_vlad
07.11.08
✎
17:17
|
(14) А математический как округляет? Скажите пожалуйста.
|
|||
17
relbler
07.11.08
✎
17:24
|
Если число из 9 цифр
то по идее умножение этого чила на 1000000000 и потом делния на 1000000000 должно откинуть дробную часть, но надо пробывать |
|||
18
Serg_1960
07.11.08
✎
17:31
|
(15) Это что, шутка? :(
Окр (Round) Синтаксис: Окр(<Число>, <Разрядность>, <Режим округления>) Параметры: <Число> (обязательный) Тип: Число. Исходное число. <Разрядность> (необязательный) Тип: Число. Определяет число знаков дробной части, до которых производится округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов. Параметр обязательный, если указан параметр <Режим округления>. Значение по умолчанию: 0 <Режим округления> (необязательный) Тип: РежимОкругления. Определяет режим округления. Помимо системного перечисления допускается использование числового параметра: 0 - если при округлении 1.5 = 1; 1 - если при округлении 1.5 = 2. Значение по умолчанию: Окр15как20 |
|||
19
Serg_1960
07.11.08
✎
17:40
|
Если послушать 1С, то она скажет что Окр(1.5) это будет 2 :))
Запрос = Новый Запрос("ВЫБРАТЬ ВЫРАЗИТЬ(1.5 КАК Число(15,0)) КАК Итог"); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Сообщить(Выборка.Итог); // в окне сообщения будет указано "2" |
|||
20
relbler
07.11.08
✎
17:50
|
А если так
Запрос = Новый Запрос(" ВЫБРАТЬ ВЫБОР КОГДА (ВЫРАЗИТЬ(Х КАК Число(15,0))-Х)>0 ТОГДА ВЫРАЗИТЬ(Х КАК Число(15,0)) ИНАЧЕ ВЫРАЗИТЬ(Х-0,5 КАК Число(15,0)) КОНЕЦ КАК Итог"); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Сообщить(Выборка.Итог); |
|||
21
Serg_1960
07.11.08
✎
17:53
|
(20) А Итог сообщить "слабо" было?
|
|||
22
and2
07.11.08
✎
17:58
|
(19) ему уже предлагали 0.5 отнимать. тогда "выразить" целую часть вернет
|
|||
23
relbler
07.11.08
✎
17:58
|
(21) Такой запрос работает , проверил
Запрос = Новый Запрос(" ВЫБРАТЬ ВЫБОР КОГДА (ВЫРАЗИТЬ(&Перем КАК Число(15,0))-&Перем)<0 ТОГДА ВЫРАЗИТЬ(&Перем КАК Число(15,0)) ИНАЧЕ ВЫРАЗИТЬ(&Перем-0.5 КАК Число(15,0)) КОНЕЦ КАК Итог"); Итог как и просили = значение "Перем" без дробной части |
|||
24
Krom
07.11.08
✎
17:59
|
раздули ветку, ответ в (6) дан
|
|||
25
Serg_1960
07.11.08
✎
18:05
|
Хотите посмеяться (всё-таки пятница!): вот Вам аналог Цел() в запросе
Запрос = Новый Запрос("ВЫБРАТЬ РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ТекДата, ДЕНЬ), ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ТекДата, ДЕНЬ), СЕКУНДА, &НашеЧисло), СЕКУНДА) КАК Итог"); Запрос.УстановитьПараметр("ТекДата", ТекущаяДата()); Запрос.УстановитьПараметр("НашеЧисло", 12345.678); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Сообщить(Выборка.Итог); // в окне сообщения будет указано "12345" |
|||
26
Serg_1960
07.11.08
✎
18:10
|
(24) Да, разумеется в (6) автору дан верный ответ по существу. А мы здесь так, просто... развлекаемся *:о)
|
|||
27
krava_vlad
07.11.08
✎
18:12
|
(24) не раздули, а разяснили
|
|||
28
krava_vlad
07.11.08
✎
18:13
|
Всем спасибо за ответы, есть чему учиться, а не "просто раздули"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |