Особенности функции Round
Автор Joss   
09.07.2019 г.

Что нам говорит справка о функции Round? И о чём умалчивает? Вот что пишут здесь

 

 

Функция Round

Возвращает число, округленное до указанного количества десятичных разрядов.

Round(выражение[, количество_деятичных _знаков])

Синтаксис функции Round имеет следующие аргументы:

выражение - Обязательный. Числовое выражение, которое требуется округлить.

количество_деятичных _знаков - Необязательный. Число, указывающее количество цифр справа от десятичного разделителя включены округления. Если не указано, функция Округляет число до ближайшего целого числа.

И больше ничего там не написано. Но поиск в интернете даёт следующее

Функция Microsoft Access Round возвращает число, округленное до указанного количества десятичных знаков. Однако функция Round ведет себя немного странно, поэтому, прежде чем использовать эту функцию, пожалуйста, прочитайте следующее:

Функция Round использует логику округления к четному. Если округляемое выражение заканчивается на 5, функция округления округляет выражение так, чтобы последняя цифра была четным числом.

Пример:

Round(12.05, 1) Result: 12.0 (округление вниз)

Round(12.15, 1) Result: 12.2 (округление вверх)

Round(12.25, 1) Result: 12.2 (округление вниз)

Round(12.35, 1) Result: 12.4 (округление вверх)

Round(12.45, 1) Result: 12.4 (округление вниз)

Round(12.55, 1) Result: 12.6 (округление вверх)

Round(12.65, 1) Result: 12.6 (округление вниз)

Round(12.75, 1) Result: 12.8 (округление вверх)

Round(12.85, 1) Result: 12.8 (округление вниз)

Round(12.95, 1) Result: 13.0 (округление вверх)

Похоже, программа Access округляет числа неправильно. Как быть?

Вот здесь даётся этому разьяснение - https://studfiles.net/preview/5960642/page:52/

Дело в том, что Access использует так называемое "банковское округление".

Что такое "Банковское округление"

Вас может удивить то, что Access округляет число 21.985 до 21.98. Если вас учили округлять до большего числа, числа заканчивающиеся цифрой 5, то вы считаете, что результат должен быть 21.99. Этот способ называют арифметическим округлением. Программа Access не применяет арифметическое округление — она выбирает банковское округление, которое лучше в некоторых случаях.

Разница между арифметическим и банковским округлением заключается в трактовке цифры 5. Поскольку число 21.985 находится точно в середине, между числами 21.98 и 21.99, не просто решить, что с ним делать. При постоянном округлении числа с 5 на конце до большего числа вносится систематическое отклонение в итоги и средние значения. Поскольку вы округляете до большего чаще, чем до меньшего, любые итоги или среднее, которые вы вычисляете, получаются чуть больше, чем следовало бы.

Банковское округление решает эту проблему округлением 5 в одних случаях до большего числа, а в других до меньшего, в зависимости от соседней четной или нечетной цифры.

Число 21.985 округляется до меньшего числа 21.98, а число 21.995 — до большего, 22. Это не единственный способ борьбы с систематическим отклонением (можно решать случайным образом, когда округлять, а когда нет), но это общепринятая практика в бухгалтерских расчетах и статистике.

Просмотров: 2969

  Ваш коментарий будет первым

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code