|
Округление до десятков в большую сторону в запросе. Как ? | ☑ | ||
---|---|---|---|---|
0
Румата
24.10.21
✎
09:08
|
Сейчас написал так : ВЫРАЗИТЬ ((НашеЧисло+5)/ 10 КАК ЧИСЛО(15, 0)) * 10
Но при случаях, когда НашеЧисло равно 10 или 20 или 30 округление происходит не правильно. Задавать НашеЧисло+4.99999999 не вижу смысла, т.к. это ошибочно. Как сделать правильное округление в большую сторону до десятков в запросе, подскажите ? |
|||
1
ДенисЧ
24.10.21
✎
09:11
|
ВЫРАЗИТЬ() - это не округление. Это циркумци́зия.
Надо именно добавлять, а потом резать. Не дожидясь. |
|||
2
Румата
24.10.21
✎
09:16
|
(1) Ну а как решить такую задачу, понятно что не округление, деля на 10 и обрезая дробную часть мы получаем целое число, потом мы все умножаем на 10. Без округления в большую сторону все прекрасно работает.
|
|||
3
pechkin
24.10.21
✎
09:18
|
(0) тебе шашечки или ехать?
|
|||
4
hhhh
24.10.21
✎
09:18
|
(2) ну так НашеЧисло+4.99999999. Смысл в этом есть всё-таки.
|
|||
5
Румата
24.10.21
✎
09:23
|
В типовой УТ 10.3 в справочнике типы цен можно выбрать округление либо по арифметическим правилам, либо в большую сторону. Интересно как это реализовано ? Наверняка в запросах тоже идет округление.
|
|||
6
Румата
24.10.21
✎
09:29
|
Выбор когда Выразить(НашеЧисло,КАК ЧИСЛО(15, 0)) = НашеЧисло Тогда
+0 Иначе +5 Конец Может так ? |
|||
7
pechkin
24.10.21
✎
09:55
|
(6) чем это лучше (0) ?
|
|||
8
Конструктор1С
24.10.21
✎
10:44
|
(0) вычисления в запросе - зло!
|
|||
9
ДенисЧ
24.10.21
✎
10:47
|
(8) Скажи это селезнёвцам, которые тангенсы в запросы принесли ))
|
|||
10
Конструктор1С
24.10.21
✎
10:48
|
(9) у них там своя наркомания
|
|||
11
pechkin
24.10.21
✎
10:54
|
(9) ну так в скл же есть. Добавление таких функций - полдня работы стажера
|
|||
12
ДенисЧ
24.10.21
✎
11:49
|
(11) В скл есть и всякие оконные функции, и cast() и convert()
Но что-то не добавляют. |
|||
13
aka MIK
24.10.21
✎
12:34
|
(0) +0.5 а потом выразить
|
|||
14
hhhh
24.10.21
✎
12:45
|
(13) +0.4999
|
|||
15
pechkin
24.10.21
✎
12:54
|
9 нужно больше чем точность исходного значения.
Для суммы достаточно 0.499 |
|||
16
pechkin
24.10.21
✎
12:54
|
(12) во всех скл?
|
|||
17
Гость из Мариуполя
гуру
24.10.21
✎
14:53
|
хм.. а что, РежимОкругления.Окр15как10 не работает ?
|
|||
18
Гость из Мариуполя
гуру
24.10.21
✎
14:59
|
а черт, не посмотрел, что в запросе
тогда извиняюсь |
|||
19
lodger
25.10.21
✎
09:00
|
(5) в типовых это место давно переписано на компоновщик данных. то есть округляет сервер1с, а не sql.
|
|||
20
Ненавижу 1С
гуру
25.10.21
✎
09:23
|
так уже предлагали?
(ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) + ВЫБОР КОГДА ТЗ.Аргумент = (ВЫРАЗИТЬ(ТЗ.Аргумент КАК ЧИСЛО(15, 0))) ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК Результат |
|||
21
Ненавижу 1С
гуру
25.10.21
✎
09:31
|
или даже так:
(ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) - (ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) - ТЗ.Аргумент + 0.5 КАК ЧИСЛО(15, 0))) + 1 |
|||
22
Конструктор1С
27.10.21
✎
09:12
|
(18) не "нужно в запросе", а "приспичило в запросе"
|
|||
23
DimG
27.10.21
✎
09:27
|
в 20 платформе добавили ОКР
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |