Перейти к основному содержанию
CalcMax

Калькулятор округления

Диапазон: -1 000 000 000 – 1 000 000 000

Результат

1235

Округлённое значение

Усечённое значение (до того же разряда)
1234

Округление заменяет число на близкое, которое проще записать, и в нём есть два решения, которые обычно принимают не замечая. Первое — до чего округлять: до ближайшего целого, до ближайшего десятка, до ближайшей сотой или до заданного числа значащих цифр. Второе — что делать, когда значение стоит ровно посередине, и именно здесь два разумных соглашения расходятся. Округление половины от нуля уводит половину от нуля, поэтому 2,5 становится 3, а −2,5 становится −3; так учат в школе, и это же большинство людей имеет в виду под округлением. Усечение, наоборот, движет значение к нулю, поэтому 2,5 становится 2, а −2,5 становится −2; его проще определить, и именно так в действительности поступает немалая часть программ. Эта страница принимает разряд как ввод и печатает оба результата на этом разряде, поэтому разница видна, а не подразумевается. Сам разряд можно назвать двумя способами. Назвать десятичный разряд — прямой путь: единицы, десятки, сотни, тысячные, вплоть до трёх знаков после запятой в обе стороны. Назвать число значащих цифр — способ, принятый в науке, где счёт идёт от первой ненулевой цифры, а не от запятой, поэтому 1 567 с двумя значащими цифрами — это 1 600: тот же ответ, что и при округлении до ближайшей сотни, но полученный другим путём. Для числа заданной величины эти два способа часто совпадают, и для 1 234,5678 шесть вариантов по значащим цифрам попадают на те же разряды, что и шесть десятичных. Конечные нули сохраняются, потому что они несут информацию: 1 234,6 до одного знака после запятой и 1 234,57 до двух — это разные утверждения о том, насколько точно известно число, и отбрасывание нуля стёрло бы разницу. Второй вывод — усечённое значение на том же разряде: это самый дешёвый способ увидеть, что правило для половин делает с вашим числом. Заметьте, чего здесь нет: страница округляет по одному числу за раз и не ведёт значащие цифры через всё вычисление, где точность ответа ограничена самым неточным вводом, а конечные нули должны сохраняться как цифры, а не как значения.

1 234,5678, округлённое и усечённое на каждом из семи десятичных разрядов

РазрядОкруглённоеУсечённое
100010001000
10012001200
1012301230
112351234
0.11234.61234.5
0.011234.571234.56
0.0011234.5681234.567

Первые три строки ничему не противоречат, потому что округление до крупного разряда отбрасывает всю дробную часть и оба соглашения попадают на одну и ту же тысячу: до ближайшей тысячи, до ближайшей сотни и до ближайшего десятка 1 234,5678 даёт 1 000, 1 200 и 1 230 в обоих случаях. Расхождения начинаются на единицах, где половина от нуля даёт 1 235, а усечение — 1 234, и они видны в каждой строке ниже по той же причине: 5 в первом знаке после запятой — настоящий случай ровно посередине на разряде единиц, а цифры 5678 не дают более поздним строкам попасть на их точки деления. Заметьте, что число знаков после запятой в ответе задаётся строкой: у ближайшей тысячи их нет вовсе, а у ближайшей тысячной сохраняются три, поэтому конечные нули появляются и остаются. Последние шесть вариантов, по значащим цифрам, в эту таблицу не попали, потому что их разряд зависит от величины числа; для 1 234,5678 они случайно совпадают с теми же шестью разрядами, что и строки выше, поэтому от одной до шести значащих цифр дают те же пары чисел, что здесь показаны. Таблица зафиксирована на 1 234,5678, а это и значение по умолчанию, так что при первой загрузке она объясняет ответ, уже стоящий на экране; за вашим вводом она не следует. Числа в таблице приведены как есть: разделитель дробной части в ней — точка (1234.6, а не 1 234,6), потому что значения берутся из расчёта, а не из текста, и разряды в них не группируются (1234, а не 1 234).

Формула

1 234,5678 до ближайшего целого ⇒ 1 235 при правиле «половина от нуля», 1 234 при усечении; 2,5 ⇒ 3 или 2; 1 567 до 2 значащих цифр ⇒ 1 600

1234,5678
Значение, которое округляется, — любое число от −1 000 000 000 до 1 000 000 000, включая дробные. Из этого же числа построена таблица ниже, поэтому её семь строк — это семь разрядов значения, уже стоящего на экране
p0, pm2, s2
До чего округлять, выбирается из тринадцати вариантов одного списка. Варианты с p называют десятичный разряд: p3 — ближайшая тысяча, p0 — ближайшее целое, pm2 — ближайшая сотая. Варианты с s называют число значащих цифр, s1–s6, считая от первой ненулевой цифры
половина от нуля
Правило для случая ровно посередине: значение, стоящее точно между двумя кандидатами, уходит от нуля, поэтому 2,5 становится 3, а −2,5 становится −3. Это соглашение, принятое в школе. Оно же выглядит как ошибка, когда складывают длинный ряд значений, оканчивающихся на ,5: каждое из них подталкивается в одну и ту же сторону
усечение
Второй вывод и вторая половина вопроса о половине: то же значение на том же разряде, но лишние цифры отброшены, а не округлены, — и это всегда движет к нулю. 2,5 усекается до 2, а −2,5 до −2. Печать его рядом с округлённым значением и делает соглашение видимым, потому что на большинстве вводов эти два вывода совпадают
1567 → 1600
Значащие цифры в действии. Счёт начинается с первой ненулевой цифры, поэтому 1567 до двух значащих цифр сохраняет 1 и 5, а остальное округляет, давая 1600. Конечные нули остаются: ответ претендует на две значащие цифры, и только запись 1600 позволяет читателю это увидеть
1,005 → 1,01
Почему арифметика ведётся по десятичным цифрам, а не умножением и делением в плавающей запятой. 1,005 хранится как значение чуть меньше 1,005, поэтому обычный путь через двойную точность округляет его вниз до 1,00; работа с цифрами даёт ответ, которого человек и ждёт, — 1,01. Пример ниже закрепляет именно этот случай

Запись измерения — классический случай, и именно оттуда взялись значащие цифры: длину, прочитанную по линейке до ближайшего миллиметра, не стоит приводить с шестью знаками после запятой, потому что лишние цифры заявляют точность, которой у инструмента никогда не было. Значащие цифры — та самая запись, которая удерживает это заявление честным, и поэтому округление измерения — не то же самое, что округление числа в головоломке. Деньги — житейская версия десятичного разряда: цены округляют до ближайшей сотой, и правило для половин здесь настоящий вопрос политики, потому что решает, куда уйдёт доля цента, а на множестве операций правило, всегда подталкивающее в одну сторону, даёт заметный сдвиг. Статистика и отчётность округляют ради читаемости: проценты до одного знака после запятой, население до ближайшей тысячи, средние до той же точности, что и их ввод. У усечения свои применения, и именно поэтому оно здесь печатается, а не опускается: отбрасывание дробной части в сторону нуля — то, что многие языки программирования делают по умолчанию, и то, что появляется, когда значение хранится в формате с фиксированной точностью. Во всех этих случаях правило, которое стоит держать в голове, таково: округлить дважды — не то же самое, что округлить один раз, а округлённое число — это утверждение о точности, а не просто более короткая запись исходного. Арифметика над округлёнными значениями накапливает разницу, и поэтому задача о значащих цифрах в вычислении — отдельный инструмент, а не эта страница.

Разобранные примеры

  1. 1 234,5678 до ближайшего целого

    1. Соседние с 1 234,5678 значения — 1 234 и 1 235
    2. Решает первый знак после запятой, то есть 5
    3. Правило половины от нуля считает 5 поводом уйти от нуля, поэтому значение округляется до 1 235
    4. Идущие следом цифры 5678 на это не влияют: решает цифра в разряде округления, а всё после неё лишь разрешает ничью
    5. Усечение вместо этого отбрасывает дробную часть и даёт 1 234

    Вариант по умолчанию и образец, из которого построена таблица ниже. Всю работу делает 5 в первом знаке после запятой: следующие за ней 6, 7 и 8 не имеют значения, и значение 1 234,5001 округлилось бы точно так же. Здесь два вывода различаются, и это удобный случай — на большинстве вводов правило половины от нуля и усечение совпадают, и именно пара чисел говорит вам, было ли вообще задействовано правило для половин.

  2. Случай ровно посередине: 2,5 до ближайшего целого

    1. 2,5 стоит ровно посередине между 2 и 3
    2. Правило половины от нуля уводит от нуля, поэтому округлённое значение равно 3
    3. Усечение движет к нулю, поэтому усечённое значение равно 2
    4. Ни то, ни другое не ошибка: это два соглашения для одного и того же ввода

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

  3. Отрицательное значение ровно посередине: −2,5 до ближайшего целого

    1. −2,5 стоит ровно посередине между −3 и −2
    2. Правило половины от нуля уводит от нуля, а уход от нуля на отрицательной стороне означает дальше вниз, поэтому ответ −3
    3. Усечение движет к нулю и даёт −2
    4. Знак определяется расстоянием от нуля, а не направлением вдоль числовой прямой

    Случай, который отделяет половину от нуля от правила «всегда округлять вверх». Оба значения здесь движутся по одному и тому же правилу — от нуля, — но на числовой прямой они идут в противоположные стороны, потому что ноль стоит посередине. Любой код или правило, описанные как «округляет вверх» без уточнения, двусмысленны ровно поэтому, и отрицательные строки таблицы ниже показывают тот же эффект на других разрядах.

  4. 1,005 до двух знаков после запятой

    1. Соседние значения — 1,00 и 1,01
    2. Решает третий знак после запятой, 5, а это ровно случай посередине
    3. Правило половины от нуля уводит от нуля, поэтому значение округляется до 1,01
    4. Усечение отбрасывает 5 и оставляет 1,00, причём конечный ноль сохраняется, чтобы точность была видна

    Пример, которым оправдана реализация. Очевидный путь — умножить на 100, округлить, разделить на 100 — даёт 1,00, потому что 1,005 нельзя сохранить точно и сохранённое значение чуть меньше 1,005. Человек же ждёт ответ 1,01, и именно его даёт работа с десятичными цифрами. То же происходит на множестве житейских значений, поэтому результат, отличающийся на единицу в последнем разряде, обычно объясняется этим, а не ошибкой в правиле.

  5. 1 567 до двух значащих цифр

    1. Первая значащая цифра — 1, в разряде тысяч; вторая — 5
    2. Две значащие цифры означают, что эти две цифры сохраняются, а округление идёт по разряду сотен
    3. Следующая за ними цифра — 6, она поднимает 5, поэтому значение становится 1 600
    4. Конечные нули остаются: именно они фиксируют, что сохранили две значащие цифры
    5. Усечение на том же разряде даёт 1 500

    Тот же ответ, что и при округлении до ближайшей сотни, но полученный с другого конца. Заметьте, чего вывод сказать не может: 1 600, записанное как обычное число, неотличимо от 1 600, округлённого до целого, или от измерения, которое равнялось ровно 1 600. Сохранение нулей — это максимум, что такая запись может сделать, а проведение значащих цифр через вычисление, где их количество должно выжить при умножении и делении, — задача отдельная от округления одного значения.

Ограничения

Значение должно быть между −1 000 000 000 и 1 000 000 000, включая дробные, а разряд выбирается из тринадцати вариантов, а не вводится вручную, поэтому попросить разряд вне этого списка нельзя. Округление ведётся по десятичным цифрам записанного значения, а не масштабированием в плавающей запятой, поэтому результаты совпадают с тем, что говорят цифры: 1,005 до двух знаков после запятой здесь равно 1,01, тогда как обычный путь через умножение и деление дал бы 1,00. У того же решения есть заметное следствие: результаты всегда печатаются с точкой и никогда с разделителями разрядов, поэтому читатель, набравший в поле десятичную запятую, увидит в ответе точку. Это сделано намеренно и совпадает с другими страницами, которые печатают текстовый результат. Конечные нули сохраняются, потому что они фиксируют точность, на которую претендует ответ: 1 234,6 и 1 234,60 — это разные выводы с разных разрядов, и записываются они по-разному. Отрицательные значения округляются по расстоянию от нуля, поэтому отрицательное значение ровно посередине уходит вниз по числовой прямой, а не вверх. Таблица ниже зафиксирована на 1 234,5678 и не следует за вашим вводом; она показывает первые семь вариантов, применённых к этому одному числу, а шесть вариантов по значащим цифрам описаны в её примечании, а не вынесены в отдельные строки. Никакого округления накопленной суммы здесь нет, и ничего не накапливается: страница округляет одно значение за расчёт.

Частые вопросы

Что означает правило «половина от нуля»?
То, что значение, стоящее ровно посередине между двумя кандидатами, уходит от нуля: 2,5 становится 3, а −2,5 становится −3. Это соглашение, которое преподают в школе, и именно его использует данная страница. Оно не единственное в ходу: банковское округление отправляет половину к чётному соседу, а это избавляет от небольшого смещения вверх, которое даёт округление половин всегда вверх на длинных списках значений.
Чем отличаются десятичные разряды от значащих цифр?
Десятичные разряды считаются от запятой, а значащие цифры — от первой ненулевой цифры. Две значащие цифры дают из 1567 число 1600 — то же, что и округление до ближайшей сотни, тогда как два знака после запятой дают из 1567 число 1567,00. Значащие цифры — это запись, принятая для измерений, потому что их количество не меняется, когда ту же величину записывают в других единицах.
Почему 1,005 округляется до 1,01, а не до 1,00?
Потому что значение стоит ровно посередине, а страница округляет половины от нуля, работая по десятичным цифрам, а не масштабированием в плавающей запятой. Обычный путь — умножить на 100, округлить и разделить на 100 — даёт 1,00, так как 1,005 хранится как значение чуть меньше 1,005. Ответ по цифрам равен 1,01, а это и есть то, что говорит правило и что получил бы человек, записывающий число вручную.
Что такое усечение и зачем его показывать?
Усечение отбрасывает лишние цифры вместо того, чтобы их округлять, и это всегда движет значение к нулю: 2,5 становится 2, а −2,5 становится −2. Оно печатается рядом с округлённым значением на том же разряде, потому что эта пара — самый ясный способ увидеть, было ли задействовано правило для половин: на вводах вдали от середины два вывода совпадают, а там, где они расходятся, разницу создало именно соглашение.
Конечные нули что-то значат?
Да, и они сохраняются намеренно. 1 234,6 до одного знака после запятой и 1 234,57 до двух — это разные утверждения о том, насколько точно известно значение, и отбрасывание конечного нуля стёрло бы разницу. То же касается целого числа, округлённого по значащим цифрам: у 1600 нули остаются, потому что именно они фиксируют, что сохранили две значащие цифры.
Проводит ли эта страница значащие цифры через вычисление?
Нет. Она округляет по одному значению за раз и не ведёт точность через цепочку арифметики, где результат ограничен самым неточным вводом, а промежуточные значения приходится держать неокруглёнными до самого конца. Это отдельная задача от округления одного числа, потому что ей нужно, чтобы количество значащих цифр выжило при умножении и делении, а обычное округлённое значение этого выразить не может.

Источники

Похожие калькуляторы