Функция Окр()
Функция Окр() округляет исходное число до нужной разрядности в соответствии с заданным режимом округления.
Доступность
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример использования
Пример кода с использованием функции Окр() :
ИсходноеЧисло = 14.5; Сообщить(Окр(ИсходноеЧисло, 0, РежимОкругления.Окр15как10)); // 14 Сообщить(Окр(ИсходноеЧисло)); // 15 Сообщить(Окр(ИсходноеЧисло, -1)); // 10
Как в 1с 8 округлить число до целого?
Для округления чисел во встроенном языке на платформе 1С:Предприятие 8 существует две функции:
1) Функция Окр()
Функция Окр() выполняет округление числового значения до ближайшего целого вверх или вниз:
Сообщить(Окр(14.5)); // 15
Округление пограничных значений выполняется по математическим правилам: значения, заканчивающиеся на 5 округляются вверх. Но это поведение можно изменить, указав третий параметр функции как РежимОкругления.Окр15как10 :
Окр(14.5, 0, РежимОкругления.Окр15как10);
2) Функция Цел()
Функция Цел() выполняет усечение числового значения до ближайшего целого. Усечение всегда выполняется вниз:
Сообщить(Цел(14.5)); // 14
Читайте также:
Как в 1с округлить до целого числа
« Как стать программистом 1С » Язык 1С » 1С ОКР — округление чисел 1С
1С ОКР — округление чисел 1С
Функция 1С Окр(Число) производит округление чисел 1С нужным способом. По-умолчанию – до целого.
- Для округления числе 1С выполняем функцию 1С Окр(22.55)
- 1С возвращает 22
Во-первых с помощью 1С ОКР можно проводить округление дробной части чисел 1С (то, что после запятой), например до сотых двух знаков):
Результат = Окр(15.2233, 2); //15.22
Во-вторых с помощью 1С ОКР можно проводить округление целой части чисел 1С (то, что до запятой), например до тысяч (трех знаков):
Результат = Окр(15333, -3); //15000
И наконец, третье. Как известно если остаток меньше 5 – то округляется до 0, а если больше 5, то округляется до 1.
- 15.33 округляем как 15.3
- 15.35 округляем как 15.4
- 15.37 округляем как 15.4.
С помощью 1С ОКР можно изменить этот порядок:
- 15.33 округляем как 15.3
- 15.35 округляем как 15.3
- 15.37 округляем как 15.4.
Только зарегистрированные пользователи VIP группы могут видеть этот контент.
Добавим в наш калькулятор новые кнопки «Окр».
Для операции нужен только один параметр, поэтому результат будет выводить сразу же по нажатию кнопки операции.
Чтобы узнать какую часть округлять и на сколько разрадов – запросим у пользователя число с помощью ВвестиЗначение().
В обработчик кнопки добавим новую ветку (как добавить новую ветку смотрите Сложение, вычитание, деление и умножение в 1С).
Пример программного кода:
Только зарегистрированные пользователи VIP группы могут видеть этот контент.
Проголосовать за этот пост:
Как в 1с округлить до целого числа
Число = 5,3;
ЦелаяЧасть = Цел(Число);
ДробнаяЧасть = Число — ЦелаяЧасть;
КонечноеЧисло = ?(ДробнаяЧасть=0,ЦелаяЧасть,ЦелаяЧасть +1);//6
НужноеЧисло = Цел(ТвоеЧисло + 1);
(22) целые в пролете.
(22)А если НужноеЧисло = 1,00 Тогда будет 2
(22) опс — забыл условие
Если Цел(ТвоеЧисло) <> ТвоеЧисло Тогда
НужноеЧисло = Цел(ТвоеЧисло + 1)
Иначе
НужноеЧисло = ТвоеЧисло;
КонецЕсли
(25) это все написано в (3)
(27) для меня это было слишком высоко. По сути — согласен :).
Хотя и это может быть не верно, смотря что понимать под целой частью
Математически Цел(-1.2)=-2, однако 1С выдает Цел(-1.2)=-1
(27) нефига не то — в (3) ошибка. Вместо Цел(Ч) + 1 надо Цел(Ч + 1)
(30) здОрово ))
(30)
хе.
Цел(Ч) + 1 = Цел(Ч + 1)
Цел(Ч) + 1 = Цел(Ч + 1)
(33)
плагиатор.
(33) о, блин, вот что значит руки вперед головы летят. Согласен — в (30) был неправ
так что насчет (29)
и все-таки (2) и (16) лучшее.
(38) но не работает, если целое число.
(39)
проверь в табло.
(39) Работает, потому что округлять можно по-разному.
ЦелаяЧастьЧисла = Цел(ТвоеЧисло);
Если ЦелаяЧастьЧисла = ТвоеЧисло Тогда
НужноеЧисло = ТвоеЧисло;
Иначе
ЗнакТвоегоЧисла = ?(ЦелаяЧастьЧисла < 0, -1, 1);
ЧислоДляОкругления = ЦелаяЧастьЧисла * ЗнакТвоегоЧисла;
ОкругленноеЧисло = Цел(ЧислоДляОкругления) + 1;
НужноеЧисло = ОкругленноеЧисло * ЗнакТвоегоЧисла;
КонецЕсли;
(+42) это если из -2.2 надо -3 получить 🙂
Функция ОкруглитьКратно(Знач Значение, ОкруглениеДо)Экспорт
// Значение должно быть неотрицательным числом любой разрядности
// ОкруглениеДо должен быть целым неотрицательным числом!
// Округление только в большую сторону — в этом смысл откругления кратно шагу,
// даже если ОкруглениеДо = 0.
Если Значение = 0 Тогда
Возврат 0;
КонецЕсли;
Если ОкруглениеДо = 0 Тогда
Возврат Окр(Значение, 4, 1);
КонецЕсли;
ЦелоеЗначение = Цел(Значение);
Если ЦелоеЗначение = 0 Тогда
Возврат ОкруглениеДо;
КонецЕсли;
// наличие дробной части «округляет» до целой части минимум на 1 единицу при не нулевом шаге.
ЦелоеЗначение = ЦелоеЗначение + ?(Значение % ЦелоеЗначение = 0, 0, 1);
// прибавляем к ЦелоеЗначение единицу до тех пор, пока оно не станет кратно ОкруглениеДо.
Пока Истина Цикл
Если ЦелоеЗначение % ОкруглениеДо = 0 Тогда
Прервать;
КонецЕсли;
ЦелоеЗначение = ЦелоеЗначение + 1;
КонецЦикла;
