Имя: Пароль:
1C
1C 7.7
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с. Видимо не подошло.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс