|
v7: Округление 0.5 в 1с 7.7 | ☑ | ||
---|---|---|---|---|
0
kobzon
20.03.14
✎
13:18
|
Сделали повышение цен на продукцию. В 1с ПУБ с помощью обработки формирования цен, произвели наценку 5%. Чтобы цены были более-менее круглыми, сделали округление до 0.5.
Но как оказалось 1с округляет по своему. И цену 116,60 округляет до 117 рублей. Вроде 60 копеек это не 90. Можно как то сделать чтобы была золотая середина? Или сказать начальству что так и должно быть - не крохоборствуйте? |
|||
1
НеБорис Нуралиев
20.03.14
✎
13:20
|
(0) А по вашему 116,60 до скольки округлить нужно?
|
|||
2
ДенисЧ
20.03.14
✎
13:20
|
по правилам арифметики Окр(116.6,1) = 117.
Бегом в школу (третий класс, по-моему) |
|||
3
kobzon
20.03.14
✎
13:21
|
Да я знаю. Но им хочется чтобы до 75 копеек выставлялось 50 ком, а после уже рубль.
|
|||
4
НеБорис Нуралиев
20.03.14
✎
13:22
|
Это уже не округление. Пишите свой алгоритм.
|
|||
5
kobzon
20.03.14
✎
13:23
|
(2) И в том то и дело что не Окр(116.6,1) = 117, а Окр(116.6,0.5) = 117.
|
|||
6
kobzon
20.03.14
✎
13:25
|
Я с этими копейками с ума сойду. По мне так сделать до рубля рас это базовый тип цент.
|
|||
7
fvadim
20.03.14
✎
13:26
|
(5) курим справку по Окр, 0.5 тут вообще отношения к желаемому результату не имеет
|
|||
8
fvadim
20.03.14
✎
13:28
|
решение в (4)
|
|||
9
ДенисЧ
20.03.14
✎
13:32
|
(5) Встроенные функции языка (Script functions)
Окр (Round) Синтаксис: Окр(<Число>, <Разрядность>, <РежимОкругления>) Параметры: <Число> (обязательный) Тип: Число. Исходное число. <Разрядность> (необязательный) Тип: Число. Определяет число знаков дробной части, до которых производится округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов. Параметр обязательный, если указан параметр <РежимОкругления>. Значение по умолчанию: 0 Как разрядлность может быть ползнака? |
|||
10
VladZ
20.03.14
✎
13:38
|
Нужная цена = Цел(исходнаяЦена / 0,5) * 0,5;
Как-то так. |
|||
11
VladZ
20.03.14
✎
13:40
|
+10 Но это не округление.
|
|||
12
kobzon
20.03.14
✎
13:50
|
Да. Фигня получается. Но не очень правильно что цена 100.51 Округлится до 101.
|
|||
13
Mikeware
20.03.14
✎
13:52
|
(9) если 0.5 округлить до литра на рыло....
|
|||
14
ДенисЧ
20.03.14
✎
13:52
|
(12) А это уже забота твоя...
То есть не твоя, конечно. А программиста. Который реализует нужные алгоритмы. |
|||
15
Mikeware
20.03.14
✎
13:54
|
(14) Жадничают они... нет у них программиста...
|
|||
16
kobzon
20.03.14
✎
13:55
|
Он тут не нужен. Ребят я вопрос задал на уровне пользователя.
Я понимаю что многие в папиных трусах. |
|||
17
ДенисЧ
20.03.14
✎
13:56
|
(16) Ты не на уровне пользователя задал вопрос. А на уровне дошкольника.
|
|||
18
ДенисЧ
20.03.14
✎
13:56
|
(15) На продажников есть, на ламерьё есть, а на программиста нет? Что ж, туда и дорога...
|
|||
19
PR
20.03.14
✎
13:56
|
Умножить на 2, округлить до 0 знаков после запятой, поделить пополам.
Задачка на 10 секунд мозговой деятельности. |
|||
20
fvadim
20.03.14
✎
13:57
|
(12) бггг, "не очень правильно".
одноэс предлагает 2 варианта округления - в большую и в меньшую, остальные хотелки ручками, в (10) - решение. |
|||
21
Ненавижу 1С
гуру
20.03.14
✎
13:59
|
Окр(исходнаяЦена / 0,5) * 0,5;
|
|||
22
kobzon
20.03.14
✎
14:04
|
(10), (21) Спасибо!
|
|||
23
VladZ
20.03.14
✎
14:12
|
(22) Информация к размышлению:
исходная цена: 11,75. Моя функция приведет к 11,5 Функция в (21) - к 12. Решайте, как вам "правильнее" |
|||
24
Ненавижу 1С
гуру
20.03.14
✎
14:16
|
(23) у тебя к нижнему значению, у меня округляет
|
|||
25
floody
20.03.14
✎
14:26
|
//******************************************************************************
// глОкруглить(Числ, ПорядокОкругления) // // Параметры: // Числ - исходное число // ПорядокОкругления - элемент перечисления Порядки окгугления: // "шаг" округления (0.01 (арифметическое), 0.01, 0.05, 0.1, 0.5, 1, 5, 10, 50, 100) // // Возвращаемое значение: // Округленное по заданному порядку значение // // Описание: // Округляет число вверх по заданному порядку. Т.е число 123.37 при порядке // округление 0.5 превратиться в 123.50, а число 0.1 при порядке округления // 5 станет равным 5. // Если значение перечисления ОкрТочно, то округляет арифметически до 0.01 // Функция глОкруглить(Числ, ПорядокОкругления) Экспорт Это не подойдет? Так и не понял, как автору нужно округлять. |
|||
26
kobzon
20.03.14
✎
14:31
|
(25) Это стандартное округление в 1с. Видимо не подошло.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |