Открыть сервисСервис

Округление чисел

Округление — математическая операция замены числа на более простое, близкое к нему, но представимое в выбранной системе счисления или с заданной точностью. Результат округления называется округлённым значением; степень приближения определяется разрядом, до которого выполняется операция. Округление применяется в вычислительной технике, статистике, инженерных расчётах и повседневных расчётах, когда точное представление избыточно или невозможно.

Основные правила округления

Наиболее распространённый метод — округление до ближайшего значения («арифметическое округление»). Правила для десятичных чисел формулируются так:

  • Если отбрасываемая часть числа меньше половины единицы последнего сохраняемого разряда, число уменьшается (округление «вниз» по модулю).
  • Если отбрасываемая часть больше половины, число увеличивается (округление «вверх» по модулю).
  • Если отбрасываемая часть равна ровно половине, применяется правило «до чётного» (round half to even) — выбирается чётный последний сохраняемый разряд. Это правило закреплено в стандарте IEEE 754 для операций с плавающей запятой и минимизирует систематическую ошибку при массовых расчётах.

Примеры: 3,14159 округляется до двух знаков как 3,14; 2,71828 → 2,72; 7,5 → 8 (по правилу «до чётного» — 8, так как 8 чётное, а 7 — нет); 6,5 → 6.

Виды округления

ВидПравилоПример (до целых)
До ближайшегоВыбор значения с минимальной разницей4,4 → 4; 4,6 → 5
Вниз (флор, ⌊x⌋)Выбор наибольшего целого не больше x4,9 → 4; −1,2 → −2
Вверх (потолок, ⌈x⌉)Выбор наименьшего целого не меньше x4,1 → 5; −1,8 → −1
Отсечение дробной части (truncate)Просто удаляется дробная часть4,9 → 4; −1,2 → −1
До значащих цифрСохранение заданного числа значащих цифр12 345 → 12 000 (2 значащие)

Округление «вниз» и «вверх» часто обозначают математическими символами ⌊x⌋ и ⌈x⌉ соответственно; отсечение дробной части для отрицательных чисел не совпадает с округлением вниз.

Округление в языках программирования

В большинстве языков программирования для округления используются встроенные функции или математические библиотеки.

  • Python — функции round(x, n) (округление до n знаков после запятой, по правилу «до чётного»), math.floor(x), math.ceil(x), math.trunc(x). Для форматированного вывода используется f-строка: f"{x:.2f}".
  • JavaScript — Math.round(x), Math.floor(x), Math.ceil(x), Math.trunc(x). Для округления до n знаков: Number(x.toFixed(n)). Стандартная функция Math.round при дробной части 0,5 округляет вверх, что отличается от IEEE 754 round-half-to-even.
  • C / C++ — round, floor, ceil, trunc из заголовка <cmath>.
  • Java — Math.round(x) (возвращает long для double), Math.floor, Math.ceil.
  • Excel / Google Таблицы — функции ОКРУГЛ(число; число_знаков), ОКРУГЛВНИЗ, ОКРУГЛВВЕРХ.

В языках со статической типизацией результат округления целочисленной функцией обычно приводится к целому типу; в Python 3 round возвращает int при вызове с одним аргументом и float — с двумя.

Округление в IEEE 754

Стандарт IEEE 754 для арифметики с плавающей запятой определяет пять режимов округления:

  1. to nearest, ties to even — по умолчанию, к ближайшему, при равном расстоянии к чётному.
  2. to nearest, ties away from zero — к ближайшему, при равном расстоянии от нуля.
  3. toward +∞ — к положительной бесконечности (потолок).
  4. toward −∞ — к отрицательной бесконечности (флор).
  5. toward zero — к нулю (отсечение).

Режим по умолчанию (round to nearest, ties to even) выбирается потому, что при большом объёме вычислений он не вносит систематической смещённой ошибки: округления «вверх» и «вниз» примерно уравновешивают друг друга.

Погрешность округления

Абсолютная погрешность округления не превышает половины единицы последнего сохраняемого разряда: для округления до целых |Δ| ≤ 0,5, до десятых |Δ| ≤ 0,05, до сотых |Δ| ≤ 0,005. Относительная погрешность тем меньше, чем больше само число и чем меньше разрядность.

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

Округление значащих цифр

Округление до значащих цифр сохраняет не фиксированное число знаков после запятой, а фиксированное число значащих цифр. Число 0,004567 округляется до трёх значащих цифр как 0,00457, а 45 670 — как 45 700. Такой вид округления удобен при записи результатов измерений, когда относительная, а не абсолютная точность является существенной.

Округление в повседневной жизни и нормативных документах

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

Исторический контекст

Потребность в округлении возникла вместе с развитием счётного дела: вавилонские и египетские математики использовали приближённые значения для площадей и объёмов. Пиѳагорейцы приближали π дробью 22/7, Архимед — значением между 3 10/71 и 3 1/7. Систематическое изучение погрешности округления связано с развитием вычислительной математики XVIII–XIX веков и работами по численным методам, а стандарт IEEE 754, определивший современные правила, принят в 1985 году.

Источники

  • IEEE Std 754-2019 — IEEE Standard for Floating-Point Arithmetic.
  • Кнут Д. «Основы программирования» (том 2, «Искусство программирования»).
  • Фаддеев Д. К., Фаддеева В. Н. «Вычислительные методы линейной алгебры».
  • Справочник по математике под ред. И. Н. Бронштейна.
  • ГОСТ 8.201-80. Государственная система обеспечения единства измерений.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru