Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Май 2018, 18:22
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как округлить  (Прочитано 2879 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Tesla

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Доброго дня. Товарищи, подскажите пожалуйста как округлить числа в диапазоне 15.01 - 15.09  до числа 15.10, то есть округлять десятичную часть до целого десятка в большую сторону.


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Re: Как округлить
« Ответ #1: 03 Окт 2014, 15:08 »
В гугле в принципе ищется все))

//******************************************************************************

// глОкруглить(Числ, ПорядокОкругления)

//

// Параметры:

//  Числ              - исходное число

//  ПорядокОкругления - элемент перечисления Порядки окгугления:

//  "шаг" округления (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);
        КонецЕсли;
    КонецЕсли;
    Возврат Рез;
КонецФункции // глОкруглить()
Числ это Ваше число, порядок округления Вам надо 0.1 в данном случае

Оффлайн Tesla

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-08-14
  • Сайт: 
  • Профессия: Ученик 1С
Re: Как округлить
« Ответ #2: 03 Окт 2014, 15:46 »
Гугл сюда и привёл :)  Собсно, чё-то у меня не фурычит :xfbnsdfb:
Если ПорядокОкругления = Перечисление.ПорядкиОкругления.ОкрТочно Тогда
{Документ.Перемещение.Форма.Модуль(97)}: Поле агрегатного объекта не обнаружено (ОкрТочно)
Добавлено: 03 Окт 2014, 16:17

Прошу прощения, что ввёл в заблуждение. Оказывается, моя задача решается таким вот стандартным способом: Окр(135.49+0.05, 1) будет давать  135,5 - то что нужно. Вобщем, аналог экселевского ОКРВВЕРХ() :lol:  спасибо!

Последний раз редактировалось: Tesla; 03 Окт 2014, 16:17. Причина: Объединение сообщений

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Re: Как округлить
« Ответ #3: 03 Окт 2014, 16:18 »
Не увидел апдейт сообщения, ну и хорошо, что все хорошо


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
165 Сообщений
alex0402
78 Сообщений
oleg-x
69 Сообщений
AIFrame AIFrame
63 Сообщений
buketov.av buketov.av
47 Сообщений
wise wise
39 Сообщений
ilyay ilyay
39 Сообщений
KOI8-R
36 Сообщений
Анюта17
33 Сообщений
Alter
29 Сообщений

* Кто онлайн

  • Точка Гостей: 365
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal