Округление чисел¶
Округление — математическая операция замены числа на более простое, близкое к нему, но представимое в выбранной системе счисления или с заданной точностью. Результат округления называется округлённым значением; степень приближения определяется разрядом, до которого выполняется операция. Округление применяется в вычислительной технике, статистике, инженерных расчётах и повседневных расчётах, когда точное представление избыточно или невозможно.
¶Основные правила округления
Наиболее распространённый метод — округление до ближайшего значения («арифметическое округление»). Правила для десятичных чисел формулируются так:
- Если отбрасываемая часть числа меньше половины единицы последнего сохраняемого разряда, число уменьшается (округление «вниз» по модулю).
- Если отбрасываемая часть больше половины, число увеличивается (округление «вверх» по модулю).
- Если отбрасываемая часть равна ровно половине, применяется правило «до чётного» (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⌋) | Выбор наибольшего целого не больше x | 4,9 → 4; −1,2 → −2 |
| Вверх (потолок, ⌈x⌉) | Выбор наименьшего целого не меньше x | 4,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 для арифметики с плавающей запятой определяет пять режимов округления:
- to nearest, ties to even — по умолчанию, к ближайшему, при равном расстоянии к чётному.
- to nearest, ties away from zero — к ближайшему, при равном расстоянии от нуля.
- toward +∞ — к положительной бесконечности (потолок).
- toward −∞ — к отрицательной бесконечности (флор).
- 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. Государственная система обеспечения единства измерений.
