![]() |
|
Округление в большую сторону | ☑ | ||
---|---|---|---|---|
0
myr4ik07
14.03.18
✎
19:40
|
Цена = 37,22 грн, если округлять до 0,05, то арифметически округляет на 37,20, а надо чтоб на 37,25
и т.д. 37.23 = 37.25 37.24 = 37.25 37.25 = 37.25 а вот все что после 5 37.26 = 37.30 |
|||
1
Cyberhawk
14.03.18
✎
19:41
|
Круто
|
|||
2
Cyberhawk
14.03.18
✎
19:41
|
||||
3
myr4ik07
14.03.18
✎
19:42
|
(1) да, уже башка кипит
|
|||
4
Cyberhawk
14.03.18
✎
19:42
|
После арифметического округления вычти из результата исходное число и если оно отрицательное, то прибавь к результату округления 0.05
|
|||
5
Cyberhawk
14.03.18
✎
19:43
|
оно = результат вычитания
|
|||
6
myr4ik07
14.03.18
✎
20:00
|
вроде оно
Функция Окр0_5_2(Цена) Экспорт Результат = 0; ЦенаСОкруглением = окр(Цена,1) - Цена; Если ЦенаСОкруглением = 0 Тогда // оставляем как есть Результат = Цена; иначеЕсли ЦенаСОкруглением < 0 Тогда //0.01,0.02,0.03,0.04 увеличиваем до 0.05 Результат = Цена+ (0.05 - (Цена - окр(Цена,1))); ИначеЕсли ЦенаСОкруглением = 0.05 Тогда //оставляем как есть Результат = Цена; Иначе //оставляем как есть Результат = Окр(Цена,1); КонецЕсли; Возврат Результат; КонецФункции |
|||
7
Малыш Джон
14.03.18
✎
20:05
|
Результат = Окр(Цена*20)/20;
не, не оно? |
|||
8
myr4ik07
14.03.18
✎
20:18
|
и вроде оно, если нужно округлить до 0.10
пример 37.22 по мат будет 37.20 а нужно 37.30 тогда Функция Окр0_1_2(Цена) Экспорт Результат = 0; ЦенаСОкруглением = окр(Цена,1) - Цена; Если ЦенаСОкруглением = 0 Тогда // оставляем как есть Результат = Цена; иначеЕсли ЦенаСОкруглением < 0 Тогда //0.01,0.02,0.03,0.04 увеличиваем до 0.10 Результат = окр(Цена,1) + 0.10; Иначе //оставляем как есть Результат = Окр(Цена,1); КонецЕсли; Возврат Результат; КонецФункции |
|||
9
Злопчинский
14.03.18
✎
20:30
|
ТоЧтоНадо = Окр(ТоЧтоЕсть+ПоловинкуСледующегоРазрядаЗаНужнымОкруглением,КоличествоЦФИРоКРУЛЕНИЯ,0)
|
|||
10
Малыш Джон
14.03.18
✎
21:20
|
(0) "Цена = 37,22 грн, если округлять до 0,05, то арифметически округляет на 37,20, а надо чтоб на 37,25"
(8) "пример 37.22 по мат будет 37.20 а нужно 37.30" ты уж определись, что нужно-то... Для первого: Результат = ?(Цел(Цена*20)/20 = Цена, Цел(Цена*20))/20,(Цел(Цена*20)+1)/20) для второго: Результат = ?(Цел(Цена*10)/10 = Цена, Цел(Цена*10))/10,(Цел(Цена*10)+1)/10) |
|||
11
Малыш Джон
14.03.18
✎
21:29
|
+(10) скобочка там в выражении лишняя, да
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |