Имя: Пароль:
1C
1C 7.7
v7: Округление в 1С 7.7
0 anagk
 
22.10.14
15:57
Может тут помогут. Здравствуйте.
Нужно вот такой принцип округления: я так думаю его можно назвать округление до 0,5
0,784 = 1
0,489 = 0,5
3,6 = 4
3,3 = 3,5
5,339 = 5,5
5,669 = 6
1 anagk
 
22.10.14
16:02
да понятия об ОКР() я знаю, но тут больше не математика, а желание видеть итоговые цифры именно так округляя.
2 silent person
 
22.10.14
16:03
а 5,1 сколько будет ?
3 anagk
 
22.10.14
16:05
5,5
4 Мигало
 
22.10.14
16:06
Собственную функцию пиши
5 anagk
 
22.10.14
16:08
ну знал бы написал, я ж за помощью обращаюсь...
6 Ёпрст
 
гуру
22.10.14
16:10
Открой же наконец, типовую, ТиС к примеру..
там всё есть!
7 Ёпрст
 
гуру
22.10.14
16:10
//******************************************************************************
// глОкруглить(Числ, ПорядокОкругления)
//
// Параметры:
//  Числ              - исходное число
//  ПорядокОкругления - элемент перечисления Порядки окгугления:
//  "шаг" округления (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
//
Функция глОкруглить(Числ, ПорядокОкругления) Экспорт
    Перем Рез;
    
    Если ПорядокОкругления = Перечисление.ПорядкиОкругления.ОкрТочно Тогда
        
        // арифметическое округление до 2-х знаков после запятой
        Рез = Окр(Числ, 2);
    Иначе
        // округление к верхней границе по заданному порядку
        
        // преобразуем порядок округления число
        Порядок            = Число(Строка(ПорядокОкругления));
        
        // вычислим количество интервалов, входящих в число
        КолвоИнтервал    = Числ / Порядок;
        
        // вычислим целое количество интервалов.
        КолвоИнтервалЦел= Цел(КолвоИнтервал);
        
        Если КолвоИнтервал = КолвоИнтервалЦел Тогда
            // Числа поделились нацело. Округлять не нужно.
            Рез    = Числ;
        Иначе
            Рез    = Порядок * (КолвоИнтервалЦел + 1);
        КонецЕсли;
        
    КонецЕсли;
    
    Возврат Рез;
КонецФункции // глОкруглить()
8 hhhh
 
22.10.14
16:12
(5) Окр(ч * 2 + 0.4999999999, 0) / 2
9 anagk
 
22.10.14
16:19
ВОТ СПАСИБО!!!! (5) щас сяду подумаю над этой формулой...все работает
10 Chameleon1980
 
22.10.14
21:34
раздели, умножь
11 пипец
 
23.10.14
10:05
+ на конфигурации - в корне , правой кнопкой , свойства- вкладка задача ... порядок округления
12 Крошка Ру
 
23.10.14
10:11
(0) Умножить на 2, округлить до целого, разделить на 2
13 Chameleon1980
 
23.10.14
10:31
(12) найборот не?
14 Крошка Ру
 
23.10.14
10:40
(13)

3.3*2 = 6.6
Окр(6.6) = 7
7/2 = 3.5
15 Chameleon1980
 
23.10.14
10:44
агаа
не проснулся еще. в кровати еще лежу
16 Крошка Ру
 
23.10.14
10:45
(15) везёт тебе...  ))
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший