Имя: Пароль:
1C
1С v8
Округлить кратно 5 в большую сторону, в запросе
0 Nikoss
 
14.12.12
17:06
Что то башка не соображает под конец дня. Как сделать?
1 asady
 
14.12.12
17:18
ВЫРАЗИТЬ((Поле1/10+0.5) КАК ЧИСЛО(15,0))*10
2 asady
 
14.12.12
17:25
ВЫРАЗИТЬ((Поле1/5+1) КАК ЧИСЛО(15,0))*5
приблизительно так
3 Nikoss
 
14.12.12
17:42
ВЫРАЗИТЬ((  948   /5+1) КАК ЧИСЛО(15,0))*5

948 выдает 955
4 Nikoss
 
14.12.12
17:45
он в выразить округляет сам
5 Axel2009
 
14.12.12
17:47
ВЫРАЗИТЬ((Поле1/5+0.5) КАК ЧИСЛО(15,0))*5
6 mehfk
 
14.12.12
17:49
ВЫБРАТЬ
ВЫБОР КОГДА ВЫРАЗИТЬ((&Поле1 /5) КАК ЧИСЛО (15,0))*5 < ВЫРАЗИТЬ((&Поле1 /5)+1 КАК ЧИСЛО (15,0))*5 ТОГДА
ВЫРАЗИТЬ((&Поле1 /5) КАК ЧИСЛО (15,0))*5
ИНАЧЕ  ВЫРАЗИТЬ((&Поле1 /5)+1 КАК ЧИСЛО (15,0))*5 КОНЕЦ КАК МоеЧисло
7 Axel2009
 
14.12.12
17:49
ВЫБРАТЬ ВЫРАЗИТЬ((945/5+0.49) КАК ЧИСЛО(15,0))*
8 Goggy
 
14.12.12
17:50
(5) +1
9 Axel2009
 
14.12.12
17:50
ВЫБРАТЬ ВЫРАЗИТЬ((945/5+0.49) КАК ЧИСЛО(15,0))*5
10 Goggy
 
14.12.12
17:50
ах да)
11 Nikoss
 
14.12.12
17:54
(6), 722 мимо ;)

пробуем дальше
12 mehfk
 
14.12.12
17:55
(11) вижу уже
13 qeos
 
14.12.12
17:55
а я вообще не понял что куда округлять нужно
14 Nikoss
 
14.12.12
17:57
(9), близко, но

ВЫБРАТЬ ВЫРАЗИТЬ((720.04/5+0.49) КАК ЧИСЛО(15,0))*5
= 720
15 mehfk
 
14.12.12
18:01
ВЫБРАТЬ
ВЫБОР КОГДА ВЫРАЗИТЬ((&Поле1 /5)+0.5 КАК ЧИСЛО (15,0))*5 < ВЫРАЗИТЬ((&Поле1 /5)+1 КАК ЧИСЛО (15,0))*5 ТОГДА
ВЫРАЗИТЬ((&Поле1 /5)+0.5 КАК ЧИСЛО (15,0))*5
ИНАЧЕ  ВЫРАЗИТЬ((&Поле1 /5)+1 КАК ЧИСЛО (15,0))*5 КОНЕЦ КАК МоеЧисло
16 Axel2009
 
14.12.12
18:01
(14) так тебе не только целые округлять??
17 Axel2009
 
14.12.12
18:02
(16)+ ВЫБРАТЬ ВЫРАЗИТЬ((720.04/5+0.499999999) КАК ЧИСЛО(15,0))*5
18 mehfk
 
14.12.12
18:02
ВЫБРАТЬ
ВЫБОР КОГДА ВЫРАЗИТЬ((&Поле1 /5)+0.5 КАК ЧИСЛО (15,0))*5 < ВЫРАЗИТЬ((&Поле1 /5)+1 КАК ЧИСЛО (15,0))*5 ТОГДА
ВЫРАЗИТЬ((&Поле1 /5)+0.5 КАК ЧИСЛО (15,0))*5
ИНАЧЕ КОГДА ВЫРАЗИТЬ((&Поле1 /5)+0.5 КАК ЧИСЛО (15,0))*5 = &Поле1 ТОГДА &Поле1
ИНАЧЕ  ВЫРАЗИТЬ((&Поле1 /5)+1 КАК ЧИСЛО (15,0))*5 КОНЕЦ КАК МоеЧисло
19 Nikoss
 
14.12.12
18:02
может так?
ВЫБРАТЬ ВЫРАЗИТЬ((724.99/5+0.4999999999999999999999) КАК ЧИСЛО(15,0))*5
20 Nikoss
 
14.12.12
18:02
(17) ;)
21 Nikoss
 
14.12.12
18:03
спасибо, вроде считает
22 MaxxiMiliSanM
 
14.12.12
18:06
ВЫБРАТЬ
   ВЫБОР КОГДА ВЫРАЗИТЬ (720.04/5 КАК ЧИСЛО(15, 0))*5=720.04 ТОГДА 720.04
   ИНАЧЕ  ВЫРАЗИТЬ(720.04/5 КАК ЧИСЛО(15, 0))*5+5 КОНЕЦ КАК ПОЛЕ2
23 MaxxiMiliSanM
 
14.12.12
18:10
(19) а если число будет такое же дробное? например 724,99999999999999999999999999999999999999999999
24 Divemaster
 
14.12.12
18:12
вот это - Выбрать
        выразить((724.99999999999999999999999999999999999999999999/5 + 0.5) как число(15,0))*5

считает без проблем, чего мучаетесь?
25 MaxxiMiliSanM
 
14.12.12
18:14
точнее 720.000000000000000000000000000000000004
26 Divemaster
 
14.12.12
18:15
(25)
Выбрать
        выразить((720.000000000000000000000000000000000004/5 + 0.5) как число(15,0))*5 = 725
27 MaxxiMiliSanM
 
14.12.12
18:19
(26) твоя формула не работает в случае 720
28 Divemaster
 
14.12.12
18:23
(27) серьёзно??))))))))))))))))))))))
29 MaxxiMiliSanM
 
14.12.12
18:24
(28) ага) показывает почему то 725)) хотя должен 720
30 mehfk
 
14.12.12
18:41
ВЫБРАТЬ

ВЫБОР КОГДА ВЫРАЗИТЬ((&Числ/5) КАК ЧИСЛО(15,0))*5 >= &Числ ТОГДА ВЫРАЗИТЬ((&Числ/5) КАК ЧИСЛО(15,0))*5
ИНАЧЕ ВЫРАЗИТЬ((&Числ/5)+1 КАК ЧИСЛО(15,0))*5 КОНЕЦ КАК мойчисло
31 Divemaster
 
14.12.12
18:42
(29) ну добавь туда вот это - (выбор когда выразить(выразить(720 как число(15,12))/5 как число(15,12)) <> выразить(выразить(720 как число(15,12))/5 как число(15,0)) тогда 0.5 иначе 0 конец)
и будет счастье с ограничением на 12 разрядов
32 MaxxiMiliSanM
 
14.12.12
18:43
короче правильный вариант (22)
33 DirecTwiX
 
14.12.12
18:46
Перевернуть числовую ось никто не додумался?
34 MaxxiMiliSanM
 
14.12.12
18:47
(33) молодец)
Программист всегда исправляет последнюю ошибку.