Алгоритм выполнения округления

Округление значения выполняется по следующему алгоритму:

  1. Из схемы округления выбирается элемент, в диапазон которого попадает округляемое значение.

  2. Этот диапазон разбивается на поддиапазоны с заданным шагом, начиная от нижней границы. Последний поддиапазон включает верхнюю границу (она может находиться внутри этого поддиапазона или совпадать с его верхней границей, в зависимости от того, кратна ли длина диапазона шагу).

  3. Выбирается поддиапазон, в который попадает округляемое значение.

  4. Итоговым значением будет нижняя или верхняя граница поддиапазона в зависимости от типа округления, заданного у элемента: в нижнюю или в верхнюю сторону соответственно.

На рисунках ниже представлено, как выполняется округление при разных вариантах задания шага и типа округления. Использованы следующие обозначения:

  • M — нижняя граница диапазона (порог элемента);

  • N — верхняя граница диапазона (порог следующего элемента);

  • P — шаг, заданный у элемента.

Рисунок 535. Округление в меньшую сторону. Шаг меньше длины диапазона. (Округление до нижних границ поддиапазонов.)

Округление в меньшую сторону. Шаг меньше длины диапазона. (Округление до нижних границ поддиапазонов.)

Рисунок 536. Округление в меньшую сторону. Шаг равен длине диапазона. (Округление до нижней границы диапазона, при этом верхняя граница не округляется.)

Округление в меньшую сторону. Шаг равен длине диапазона. (Округление до нижней границы диапазона, при этом верхняя граница не округляется.)

Рисунок 537. Округление в меньшую сторону. Шаг больше длины диапазона. (Округление до нижней границы диапазона.)

Округление в меньшую сторону. Шаг больше длины диапазона. (Округление до нижней границы диапазона.)

Рисунок 538. Округление в большую сторону. Шаг меньше длины диапазона. (Округление до верхних границ поддиапазонов. При этом в последнем поддиапазоне может быть выполнено округление до значения, большего верхней границы диапазона, в зависимости от того, кратна ли длина диапазона шагу.)

Округление в большую сторону. Шаг меньше длины диапазона. (Округление до верхних границ поддиапазонов. При этом в последнем поддиапазоне может быть выполнено округление до значения, большего верхней границы диапазона, в зависимости от того, кратна ли длина диапазона шагу.)

Рисунок 539. Округление в большую сторону. Шаг равен длине диапазона. (Округление до верхней границы диапазона.)

Округление в большую сторону. Шаг равен длине диапазона. (Округление до верхней границы диапазона.)

Рисунок 540. Округление в большую сторону. Шаг больше длины диапазона. (Округление до значения, большего верхней границы диапазона.)

Округление в большую сторону. Шаг больше длины диапазона. (Округление до значения, большего верхней границы диапазона.)

В таблице ниже представлена схема округления для следующего примера тарификации соединений:

  • соединения длительностью 5 секунд и менее не тарифицируются;

  • соединения длительностью от 5 до 60 секунд округляются до полной минуты;

  • соединения длительностью от 1 до 3 минут тарифицируются по 5 секунд с округлением в большую сторону;

  • для соединений длительностью более 3 минут используется посекундная тарификация.

Порог Шаг Тип округления
0 6 в меньшую сторону
5 55 в большую сторону
60 5 в большую сторону
180 1 в большую сторону