Чтобы округлить число, нужны всего два кандидата: кратное выбранного разряда чуть ниже него и чуть выше. 3.472 до одного знака после запятой лежит между 3.4 и 3.5, на 0.072 выше первого и на 0.028 ниже второго - значит, побеждает 3.5. «Посмотри на следующую цифру и поднимись, если она 5 или больше» - это короткий путь к тому же сравнению, и путь очень хороший.
Короткий путь становится настоящим решением только в середине, где ни один сосед не ближе. Там ответ действительно зависит от того, какое соглашение вы используете, а в ходу их шесть: школьное округление отправляет ничью от нуля, банк - к чётному соседу, функция ОКРУГЛВНИЗ в таблице всегда идёт вниз, а усечение просто выбрасывает остаток. Эта страница показывает все шесть рядом на вашем числе, потому что именно на этот вопрос страница об округлении и должна отвечать.
Чтобы вообще увидеть ничью, нужна точная арифметика. В двоичной плавающей точке 2.675 - это на самом деле 2.67499999999999982…, и поэтому почти любой калькулятор, таблица и язык программирования округляют это до 2.67 и настаивают, что никакой ничьей не было. Здесь число хранится точной дробью, поэтому 2.675 - настоящая ничья, страница так и говорит, а статья объясняет, почему ваш другой калькулятор не согласился.
На что обратить внимание
Два соседа - всегда кратные того разряда, до которого вы округляете. До десятков это 1270 и 1280; до двух знаков после запятой - 2.67 и 2.68.
Важно только расстояние, а не цифры. Правило цифры работает потому, что цифра 5 или больше И ЕСТЬ дальняя половина промежутка: это сокращение сравнения, а не отдельный закон.
Значащие цифры считают от первой ненулевой, а не от запятой. 0.004567 до двух значащих цифр - это 0.0046: ведущие нули держат разряд, а цифрами не являются.
Соглашения расходятся только на ничьей. В остальных случаях округление вверх, к чётному и вниз дают одно и то же - поэтому почти никто не замечает, что правил больше одного.
Школьное правило - «от нуля», а не «к плюс бесконечности». Поэтому -2.5 по нему становится -3, тогда как функция потолка дала бы -2.
Округлить дважды - не то же, что округлить один раз. 2.446 до двух знаков даёт 2.45, а ЭТО до одного даёт 2.5, но исходное число прямо до одного знака даёт 2.4.
Как округлить число
1
Решите, до чего округляете
До числа знаков после запятой, до разряда (десятки, сотни) или до числа значащих цифр. Всё дальнейшее - одна и та же работа при любом выборе.
2
Найдите двух соседей
Кратное этого разряда чуть ниже вашего числа и чуть выше. Для 3.472 до одного знака: 3.4 и 3.5.
3
Посмотрите, кто ближе
Либо сравните расстояния (0.072 против 0.028), либо используйте короткий путь: посмотрите первую цифру за разрядом и поднимитесь, если она 5 или больше. Оба отвечают на один вопрос.
4
Если ровно посередине - примените соглашение
Школьное правило округляет от нуля: 2.5 идёт в 3, а -2.5 в -3. Статистики и банки часто округляют к чётному соседу, тогда 2.5 идёт в 2, а 3.5 в 4.
5
Сохраните разряд, до которого округляли
Округление 1274 до сотен даёт 1300, а не 13. Нули несут смысл: они говорят, до какого разряда ответ точен.
Одни и те же числа, округлённые четырьмя способами
Школьное округление (5 и больше вверх), применённое к каждому разряду. Обратите внимание на числа, которые не двигаются: они уже точные кратные этого разряда.
Число
1 знак
2 знака
До десятков
2 знач. цифры
3.472
3.5
3.47
0
3.5
2.675
2.7
2.68
0
2.7
1274
1274
1274
1270
1300
0.004567
0
0
0
0.0046
-2.5
-2.5
-2.5
0
-2.5
9.96
10
9.96
10
10
0.5
0.5
0.5
0
0.5
149.5
149.5
149.5
150
150
Разобранные примеры
3.472 до одного знака после запятой
plain
3.472
Соседи - 3.4 и 3.5. Расстояния 0.072 и 0.028, значит 3.5 ближе, и это ответ. Короткий путь согласен: цифра после десятых - 7, то есть 5 или больше, значит вверх. Ошибка округления 0.028 - вот сколько стоит «до одного знака».
Ничья, которой не видит ни один калькулятор: 2.675 до двух знаков
plain
2.675
Сохранённое точно, это число стоит ровно посередине между 2.67 и 2.68. Школьное округление поднимает его до 2.68; банк отправит к чётному соседу, тоже 2.68; округление вниз дало бы 2.67. Ваш телефон почти наверняка говорит 2.67, потому что в двоичной записи 2.675 хранится чуть ниже половины.
Отрицательная ничья: -2.5 до целого
plain
-2.5
Школьное правило действует на цифру, поэтому округляет от нуля: -3. Функция потолка идёт к плюс бесконечности и даёт -2; пол даёт -3; усечение просто отбрасывает .5 и даёт -2. Четыре защитимых ответа - именно поэтому соглашение нужно называть.
Значащие цифры: 0.004567 до двух
plain
0.004567
Счёт начинается с 4, значит две значащие цифры - это 4 и 6, а решающая цифра - следующая за ними 7: поднимаемся до 0.0046. Три ведущих нуля - не цифры, а держатели разряда, говорящие, где стоит число.
Когда округление переносится: 9.96 до одного знака
plain
9.96
Соседи - 9.9 и 10.0, и 9.96 ближе ко второму, поэтому ответ 10: перенос доходит до единиц. Это случай, на котором спотыкаются, потому что меняется и цифра перед округляемым разрядом.
Делать нечего: 149.5 до одного знака
plain
149.5
149.5 уже точное кратное 0.1, поэтому выбирать между двумя соседями не из чего, и число возвращается неизменным с нулевой ошибкой округления. До десятков - другая история: там ничья настоящая, и школьное округление даёт 150.
Частые ошибки
Округлять поэтапно. Округляйте каждый раз от ИСХОДНОГО числа: 2.446, доведённое до двух знаков, а потом до одного, даёт 2.5, а сразу до одного знака - 2.4.
Выбрасывать нули, держащие разряд. 1274 до сотен - это 1300; написать 13 значит изменить число в сто раз.
Считать значащие цифры от запятой. В 0.004567 первая значащая цифра - 4, поэтому две значащие цифры дают 0.0046, а не 0.00.
Считать поведение калькулятора на ничьей математикой. Функция ОКРУГЛ в таблице округляет ничью от нуля, а round() в Python - к чётному: оба варианта защитимы, спор идёт о соглашении.
Читать «округлить вверх» как «к плюс бесконечности» для отрицательных. По школьному правилу -2.5 идёт в -3, потому что правило цифры смотрит на величину и игнорирует знак.
Забывать, что округлённое число - приближение. Как только написано 3.5, эти 0.028 потеряны навсегда, поэтому округляйте в КОНЦЕ вычисления, а не посередине.
Вопросы об округлении
Как округлить число до знака после запятой?
Посмотрите первую цифру за нужным разрядом. Если она 5 или больше - вверх, иначе вниз. Для 3.472 до одного знака следующая цифра 7, значит ответ 3.5. Равносильно и честнее: выберите из 3.4 и 3.5 то, что ближе.
Всегда ли 5 округляется вверх?
По школьному правилу да - и одинокая 5 как раз тот случай, когда оба соседа равноудалены, так что правило это соглашение, а не факт. Существуют и широко используются другие: к чётному соседу, вниз или к нулю.
Что такое банковское округление и зачем оно?
Округление половины к чётному: ничья идёт к чётному соседу, поэтому 2.5 становится 2, а 3.5 становится 4. Если всегда поднимать ничьи, длинный столбец чисел смещается вверх; отправка половины вниз этот сдвиг снимает. Это поведение по умолчанию в IEEE-плавающей точке и в ряде статистических пакетов.
Как округлять до значащих цифр?
Считайте от первой ненулевой цифры, а не от запятой, и округляйте в этом разряде. 0.004567 до двух значащих цифр - 0.0046, а 123456 до трёх - 123000. Страница сама находит этот разряд, а затем округляет обычным образом.
Почему мой калькулятор говорит, что 2.675 округляется до 2.67?
Потому что у него никогда не было 2.675. В двоичной плавающей точке это значение хранится как 2.67499999999999982…, что действительно ниже середины, так что калькулятор правильно округляет то число, которым располагает. Эта страница держит число точной дробью и потому видит ничью, которую калькулятор увидеть не может.
Как округляются отрицательные числа?
Зависит от соглашения - именно поэтому страница показывает все шесть. Школьное правило цифры округляет от нуля и даёт -3 для -2.5. Потолок идёт к плюс бесконечности (-2), пол - к минус бесконечности (-3), а усечение - к нулю (-2).
Чем округление отличается от усечения?
Усечение выбрасывает всё после разряда, что бы там ни стояло: 3.99, усечённое до целого, - это 3. Округление берёт ближайшего соседа, поэтому 3.99 становится 4. Усечение быстрее и всегда смещено к нулю, поэтому оно уместно в счётчике цикла и опасно в деньгах.
В какой момент вычисления округлять?
В самом конце. Округление промежуточных значений выбрасывает информацию, которая ещё нужна, и ошибки накапливаются: поэтому точные ответы на этих страницах держат дроби дробями, а корни корнями, пока вы не попросите десятичную запись.