|
СКД. Целочисленное деление. Реально? | ☑ | ||
---|---|---|---|---|
0
ilpar
03.09.12
✎
12:21
|
интересует момент, для отчета.
Нужно: 10/3 = 3 |
|||
1
Heckfy
03.09.12
✎
12:22
|
Цел(<Число>) Не оно?
|
|||
2
ilpar
03.09.12
✎
12:23
|
в запросе не катит на СКД
|
|||
3
MaxisUssr
03.09.12
✎
12:23
|
(0)
Используй вычисляемые поля в СКД |
|||
4
KAO111
03.09.12
✎
12:25
|
В запросе
выразить(10/3 как число(5,0)) |
|||
5
KAO111
03.09.12
✎
12:25
|
для отчета лучше формат
|
|||
6
Axel2009
03.09.12
✎
12:28
|
(4) выразить(10/3-0.5 как число(5,0))
|
|||
7
Axel2009
03.09.12
✎
12:29
|
выразить((10-0.5)/3 как число(5,0))
|
|||
8
ilpar
03.09.12
✎
12:37
|
Не катит
Выбрать выразить(11/3 как число(5,0)) = 4 |
|||
9
ilpar
03.09.12
✎
12:37
|
а должно быть Выбрать выразить(11/3 как число(5,0)) = 3
|
|||
10
Ахиллес
03.09.12
✎
12:41
|
(11-(11%3))/3 Так?
|
|||
11
Cube
03.09.12
✎
12:41
|
(8) Тебе же сказали, Выбрать выразить((11/3)-0.5 как число(5,0)) = 4
|
|||
12
Cube
03.09.12
✎
12:42
|
+(11) т.е. = 3))
|
|||
13
ilpar
03.09.12
✎
12:43
|
спасибо, не понял сразу :)
|
|||
14
ilpar
03.09.12
✎
12:46
|
Выбрать выразить(0-0.5 как число(5,0))
|
|||
15
ilpar
03.09.12
✎
12:46
|
но это уже детали :)
|
|||
16
ilpar
03.09.12
✎
12:46
|
Выбрать выразить(0-0.5 как число(5,0)) = -1
|
|||
17
Zmich
03.09.12
✎
12:48
|
(16). Всё верно, так и должно быть. Целая часть от (-0.5) - это (-1).
|
|||
18
Cube
03.09.12
✎
12:48
|
(16) Выбор Когда ... Тогда ... Иначе ... Конец
|
|||
19
mozzga
03.09.12
✎
12:49
|
просто в оформлении поля формат, число 0 знаков после запятой, если только считать ничего больше не надо
|
|||
20
Reset
03.09.12
✎
12:51
|
(16)
выразить((&Делимое/&Делитель)-(выбор когда &Делимое>0 тогда 0.5 когда &Делимое=0 тогда 0 иначе -0.5 конец) как число(5,0)) |
|||
21
Reset
03.09.12
✎
12:51
|
(20) бррр
|
|||
22
Zmich
03.09.12
✎
12:52
|
(20). Неправильно, если и Делимое, и Делитель < 0
|
|||
23
Reset
03.09.12
✎
12:53
|
(22) Согласен
выразить((&Делимое/&Делитель)-(выбор когда &Делимое*&Делитель>0 тогда 0.5 когда &Делимое*&Делитель=0 тогда 0 иначе -0.5 конец) как число(5,0)) |
|||
24
Reset
03.09.12
✎
12:56
|
или без умножения
выразить((&Делимое/&Делитель)-(выбор когда &Делимое>0 И &Делитель>0 ИЛИ &Делимое<0 И &Делитель<0 тогда 0.5 когда &Делимое=0 тогда 0 иначе -0.5 конец) как число(5,0)) жесть имхо |
|||
25
Ахиллес
03.09.12
✎
13:01
|
чем (10) не устраивает?
|
|||
26
Eugene555
03.09.12
✎
13:14
|
выбор когда выразить(м как число(10,0)) >м тогда выразить(м как число(10,0))-1 иначе м конец
|
|||
27
Eugene555
03.09.12
✎
13:15
|
точнее так: выбор когда выразить(м как число(10,0)) >м тогда выразить(м как число(10,0))-1 иначе выразить(м как число(10,0)) конец
|
|||
28
Axel2009
03.09.12
✎
13:56
|
тогда уж так
выразить((10+0.5)/3 как число(5,0))-1 |
|||
29
vmv
03.09.12
✎
14:01
|
решиния 2
1. в запросе(выражении СКД) Выразиить(...тра ля ля), как было указано 2. в выражении СКД использовать нечто МойОбщийМодуль.Форматирование(Значение, ФорматнаяСтрока, СтруктураПрочихПараметров) думаю мысль ясна, остальные варианты от лукавого или просто вода. |
|||
30
НЕА123
03.09.12
✎
14:12
|
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), СЕКУНДА, &Делимое / &Делитель), СЕКУНДА)
|
|||
31
Reset
03.09.12
✎
14:20
|
(30) На отрицательных числах не будет работать :(
Частично можно наладить, проставив 1999 год. тогда будет работать для диапазона -1999*секундВГоде ... + 1999*секундВГоде |
|||
32
Staffa
03.09.12
✎
14:51
|
а не проще сделать функцию в общем модуле, которая обычными средствами языка будет делать деление и возвращать результат в СКД?
|
|||
33
Axel2009
03.09.12
✎
14:53
|
(32) проще то оно проще, но по времени накладнее на порядочек минимум
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |