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

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

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

Оффлайн Tesla

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


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 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

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


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal