![]() |
|
Округление в большую сторону ОкрБ(0.12, 1) = 0.2. Как максимально эффективно? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
21.02.21
✎
12:38
|
Что-то я не нашел такой функции в 1С, поэтому написал свою:
Функция ОкрБольш(Ч, Разрядность) Экспорт Ц = Окр(Ч, Разрядность); Если Ц >= Ч Тогда Возврат Ц; КонецЕсли; Если Разрядность >= 0 Тогда Возврат Ц + 1/Pow(10, Разрядность); Иначе Возврат Ц + Pow(10, -Разрядность); КонецЕсли; КонецФункции А как правильно? |
|||
1
ДенисЧ
21.02.21
✎
12:44
|
Если положительное, то Цел(1.12 + 1)
|
|||
2
RomanYS
21.02.21
✎
12:52
|
Ц = Окр(Ч, Разрядность);
Возврат Ц + ?(Ц >= Ч, 0, Pow(10, -Разрядность)); |
|||
3
Ненавижу 1С
гуру
21.02.21
✎
13:44
|
(0) у тебя боязнь работы с отрицательными степенями?
|
|||
4
Ненавижу 1С
гуру
21.02.21
✎
13:50
|
Функция ОкрБольш(Ч, Разрядность=0) Экспорт
Возврат Окр(Ч+Pow(10, Разрядность)/2, Разрядность, РежимОкругления.Окр15как10); КонецФункции |
|||
5
Ненавижу 1С
гуру
21.02.21
✎
13:52
|
||||
6
RomanYS
21.02.21
✎
13:58
|
(4) минус похоже потерял, а так даже покрасивше
|
|||
7
volfy
21.02.21
✎
13:59
|
+0,5 и обычное округление.
|
|||
8
RomanYS
21.02.21
✎
14:04
|
(7) Не совсем обычное и не совсем 0,5... более менее (с одной большой ошибкой) это и предлагается в (4)
|
|||
9
Ненавижу 1С
гуру
21.02.21
✎
14:05
|
(4) да, степень -Разрядность
|
|||
10
Гений 1С
гуру
21.02.21
✎
14:22
|
(3) честно говоря, не помню. Проверил на калькуляторе 10 в степени -2 не равно -0.01
|
|||
11
Гений 1С
гуру
21.02.21
✎
14:23
|
(4) проверь при параметрах (0.1, 1) даст 0.1 или 0.2?
|
|||
12
Ненавижу 1С
гуру
21.02.21
✎
14:31
|
(11) смотри (9)
|
|||
13
Ненавижу 1С
гуру
21.02.21
✎
14:38
|
(10) а должно быть?
|
|||
14
Guk
21.02.21
✎
16:55
|
если это гений, то я то тогда кто?...
|
|||
15
Ёпрст
гуру
21.02.21
✎
17:53
|
(0) почти во всех типовых, общий модуль, типа Ценообразование:
|
|||
16
Ёпрст
гуру
21.02.21
✎
17:54
|
И эта шляпа была еще во всех типовых конфах в клюшках.
|
|||
17
Ёпрст
гуру
21.02.21
✎
17:54
|
там было перечисление, для определения порядка округления. и функция в глобальнике -глОкруглитьЦену
|
|||
18
Ёпрст
гуру
21.02.21
✎
17:57
|
В ут11 это в общем модуле ЦенообразованиеКлиентСервер
|
|||
19
Aleksey
21.02.21
✎
18:02
|
а что прибавить 0,5 уже не работает?
|
|||
20
hhhh
21.02.21
✎
18:16
|
(19) 0.49999999999
|
|||
21
ДедМорроз
21.02.21
✎
19:44
|
На самом деле,проблема не в том,в какую сторону округлять,а в том,что округление несимметрично.
Если мы округляем значение налога,например,а потом вычитаем его из общей суммы или сначала вычитаем,а потом округляем,то получаются разные результаты. Округление же до ближайшего числа,кратного чему-то это вообще очень спорная операция. |
|||
22
Ненавижу 1С
гуру
21.02.21
✎
19:47
|
(21) думаете стоит запретить?
|
|||
23
Ненавижу 1С
гуру
21.02.21
✎
19:48
|
(21) кстати, фразы начинающиеся со слов "на самом деле" не внушают доверия.
|
|||
24
ДедМорроз
21.02.21
✎
19:57
|
(23)не внушают,не читай.
|
|||
25
Гений 1С
гуру
22.02.21
✎
05:45
|
(21) мне не для бюстгалтерии нужно
|
|||
26
Гений 1С
гуру
22.02.21
✎
05:46
|
(15) мне для нетленки. Типовая функция монструозна как-то и использует преобразование строки в число
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |