Тип: Число.
Определяет число знаков дробной части, до которых производится округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов.
Параметр обязательный, если указан параметр <РежимОкругления>.
Значение по умолчанию: 0.
<РежимОкругления> (необязательный)
Тип: РежимОкругления.
Определяет режим округления. Помимо системного перечисления допускается использование числового параметра: 0 - если при округлении 1.5 = 1; 1 - если при округлении 1.5 = 2.
Значение по умолчанию: Окр15как20.
(21) в (11) приведен типичный индусский код. Человек, который впоследствии будет править конфигурацию с таким кодом, выскажет много лестных слов о предыдущем разработчике
(22) Неожиданно, только если не использовать и не задумываться. Третий параметр просто определяет поведение округления на границе округления, где бы она не находилась при заданных условиях. Как бы аналог "включая границу" и "исключая границу".
(23) Да вполне имеет право на жизнь. Достаточно добавить комментарий. Это просто частный случай более универсального варианта смещения границы округления.
(24) Это я уже понял. Из описания метода сложилось ошибочное предположение что 15как10 округляет в меньшую сторону любое число, а не только учитывает границу 0.5.
Окр(7167.127,2,0) 7 167,13 Число
Окр(7167.127,2,1) 7 167,13 Число
Окр(7167.127,2,2) 7 167,13 Число
Окр(7167.127,2,РежимОкругления.Окр15как10) 7 167,13 Число
Окр(7167.127,2,РежимОкругления.Окр15как20) 7 167,13 Число
Если верить гуглю, округление вниз через Окр() - очень распространенная ошибка.
Вторая по распространенности - сумма округлений не равна округлению суммы.
Бывает даже просто непонимание принципа округления, например http://forum.infostart.ru/forum26/topic110011/
В общем, примета: округление в середине формулы - к глюкам.
А если по условиям задачи не допустимо изменять число?
В моем случае:
Окр(0.9888551,4,РежимОкругления.Окр15как10) = 0,9889
Окр(0.9888551,4,РежимОкругления.Окр15как20) = 0,9889