описание процесса, особенности, примеры OTUS

Задумываться над тем, как округлить число, может не только математик, но и программист. Этот процесс пригодится при разнообразных сложных вычислениях. В данной статье будет рассказано о том, как правильно действовать с округлением цифр в том или ином случае. А еще – рассмотрены несколько наглядных примеров программного кода в некоторых популярных языках программирования.

Что это такое

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

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

Округление – замена числа на его приближенное значение с заданной заранее точностью. Записывается с меньшим количеством значащих цифр. Модуль разности между первоначальным и округленным результатом носит название ошибки округления.

Общие принципы

Размышляя над тем, как округлить то или иное число, стоит запомнить несколько элементарных правил. Они помогут произвести грамотный расчет приближенного при необходимости:

  1. Если в процессе первая из цифр, которую нужно отделить, меньше 5-ки, то последняя из оставленных остается без последующих корректировок.
  2. Когда первая убираемая больше 5, последняя оставляемая будет увеличиваться на единицу. Происходит усиление.
  3. При отсечении 5, когда за ней нет значащих компонентов, округление будет производиться на ближайшее четное. Это значит, что последний оставляемый элемент остается без изменений, если он четный. Усиливается – когда нечетный.

Эти принципы помогут быстрее разобраться в том, как грамотно округлять цифры. Забыв о базе, можно наделать немало ошибок.

До целого

Далее следует рассмотреть возможные варианты проведения соответствующей операции. Самый простой подход – округление до целых. Здесь действует такой принцип:

  1. Для того, чтобы провести операцию, требуется отбросить запятую и все цифры, которые стоят после нее.
  2. Если первая отбрасываемая меньше 5 – изменений не требуется.
  3. Когда «стирается» от 5 до 9 включительно, предыдущее увеличивается на единицу.

Элементарный пример: дано 0,53. Его округление до целого – это 1. Результат получен благодаря тому, что после запятой стоит 5. Она увеличивает прежний результат на единицу.

До десятых

Округлить число можно до десятых. Для этого необходимо:

  1. Оставить после запятой всего одну составляющую. Остальные – отбросить.
  2. Когда первое отбрасываемое от 0 до 4, предыдущая цифра остается без корректировок.
  3. Если первое убираемое – это 5-9, предыдущее увеличивается на +1.

Это правило округления изучается даже в школьной программе. Активно используется при создании программного обеспечения и проведения разнообразных вычислений.

Примеры:

  1. Нужно округлить 24,75. На выходе получится 24,8, так как первое отбрасываемое значение равно 5.
  2. Округление 55,31. Результат – 55,3. Получается за счет того, что первая цифра после запятой – это 3.
  3. 89,961 округляется до 90. Первая исключаемая цифра – это 6. На увеличивает на единицу 9, что приводит к «росту» целого.

Такие расчеты можно осуществлять самостоятельно или при помощи специальных приложений – онлайн калькуляторов.

До сотых

Можно округлить заданное число до сотых. Для этого стоит уяснить следующие правила и принципы:

  1. После запятой требуется оставить две цифры. Остальные элементы просто отбрасываются.
  2. Если первая исключаемая — это 0, 1, 2, 3 или 4, то предыдущая остается без корректировок.
  3. В противном случае требуется увеличить предыдущее значение на единицу.

Нужно поработать с 33,786. Его приближенное значение – 33,79. Связано с тем, что первая отбрасываемая цифра – это 6.

Если нужно получить приближенное от 5,972, оно будет равно 5,97. Первый исключаемый элемент – 2, который не требует усиления.

До тысячных

Можно округлить заданное число до тысячных. Для этого предстоит руководствоваться такими принципами и правилами:

  1. После запятой оставить только три элемента. Оставшуюся часть убрать.
  2. Когда первое отбрасываемое значение менее 5, предыдущий элемент остается без корректировок.
  3. Если отбрасываемая первая от 5 до 9 включительно, предыдущую требуется усилить. А именно – увеличить на единицу.

Чтобы лучше понять, как округлять числа, рекомендуется рассмотреть несколько наглядных примеров. Они будут напоминать процесс получения приближенного значения до сотых и десятых.

Дано 4,7864. Его приближенное значение окажется 4,786. Связано это с тем, что отбрасываемая цифра – это 4. Она не требует усиления предыдущего элемента.

Если требуется округлить 79,99982, то «на выходе» получится 80,000. Отбрасываемый компонент – 8. В этом случае требуется провести усиление предыдущей «записи».

До десятков

Чтобы округлить заданное число до десятков, следует вспомнить понятие разряда в математике. Для того, чтобы получить приближенное значение у целого с точностью до десятков, требуется руководствоваться следующими принципами:

  1. Цифру в разряде единиц заменить нулем.
  2. Если у рассматриваемого «объекта» есть элементы после запятой – их нужно отбросить.
  3. Когда отбрасываемая цифра 0-4, предыдущая остается без корректировок.
  4. В противном случае необходимо увеличить предыдущий элемент на единицу.

Чтобы округлять грамотно числа, всегда требуется рассматривать наглядные примеры. Они помогут закрепить полученные знания на практике.

Дана цифра 564, для которого необходимо получить приближенное значение с точностью до десятых. С этой задачей справится специализированный online калькулятор. Но и самостоятельно произвести подсчеты не трудно.

В разряде единиц стоит 4. Она заменяется нулем. Предыдущая цифра по этой же причине не усиливается. Поэтому результатом проведенной операции будет 560.

Если же требуется округлить число 787, результатом будет 790. Связано это с тем, что отбрасываемая цифра в разряде единиц – это 7. Она требуется увеличения на единицу предыдущего элемента.

В случае с наличием дробной части и получением приближенного значения, действовать требуется аналогичным образом. Пусть дано 745,33. Приближенное значение с точностью до десятков – это 750. Часть после запятой отбрасывается. В разряде единиц стоит 5, которая предусматривает усиление предыдущего элемента на единицу.

До сотен

Можно округлять заданные числа до сотен. В этом случае требуется:

  1. При наличии дробной части – просто отбросить оную.
  2. Элементы в разрядах единиц и десятков заменить на нули.
  3. Если отбрасываемая цифра менее 5, предыдущая не корректируется.
  4. В противном случае нужно увеличить оную на +1.

Если округлить число 7126 до сотен, получится приближенное значение 7100. Дробной части нет, а первый отбрасываемый элемент – это 2. Усиление здесь не требуется.

В случае с 9855, приближенным значением окажется 9900. Отбрасываемая цифра – это 5, требующая усиление предыдущего элемента на единицу.

С дробной частью ситуация обстоит аналогичным образом. 45632,22 с точностью до сотен – это 45600. Дробная часть отбрасывается. Первая составляющая, исключаемая из значения – 3. Она не требует усиления.

До тысяч

Округлить имеющееся число до тысяч тоже не слишком трудно:

  1. При наличии дробной части – отбросить ее полностью.
  2. Разряды единиц, десятков и сотен заменить на нули.
  3. Если первое отбрасываемое – до 4 включительно, предыдущий элемент не изменяется.
  4. В противном случае происходит увеличение на единицу.

Если округлить число 43177 до тысяч, приближенным значением окажется 43000. Первый отбрасываемый элемент – это 1. Он не требует каких-либо корректировок.

При работе с 1879732 результатом будет 1880000. Отбрасываемый первый элемент – это 7. Он приводит к увеличению 9-ки. Проверить результат можно через онлайн калькулятор.

Чтобы лучше разбираться в том, как округлять заданные числа, стоит вспомнить школьную программу по математике. А еще можно записаться на специализированные онлайн курсы по программированию. Там научат не только округлять, но и писать программные коды разного уровня сложности.

Преимущества курсов

Обучающие компьютерные курсы:

  1. Позволяют получать необходимые знания тогда, когда это удобно. Для начала операции требуется только подключение к интернету. Смотреть занятия удастся и с компьютеров, и с мобильных гаджетов.
  2. Рассчитаны на разные возрастные категории.
  3. Делятся по уровню знаний – предложения есть как для новичков, так и для опытных разработчиков.
  4. Предлагают бесценный практический опыт и кураторство знающими разработчиками.
  5. Рассчитаны на срок от нескольких месяцев до года. За этот период можно освоить одну или несколько программ.

По завершении обучения «студент» получит сертификат установленного образца, при помощи которого удастся подтвердить знания в выбранной заранее области.

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!

Также, возможно, вам будет интересен следующий курс:

JAVA Проблема округления чисел с плавающей запятой и решение | Аршад Сурадж

5 минут чтения

·

7 мая 2021 г.

Фото Александра Синна на Unsplash

Какой тип данных вы используете в настоящее время в Java для выполнения чувствительных вычислений с плавающей запятой, таких как валюта? Если ваш ответ — float или double, вы должны прочитать весь этот пост, в котором описывается проблема с вычислениями с плавающей запятой, а также предлагаются решения.

Фрагмент кода 1

Давайте посмотрим на приведенный выше код. Каков ожидаемый результат?

 Ожидаемый результат: 0,3 

Теперь просто скомпилируйте и запустите код и посмотрите, каков фактический результат.

 Фактический вывод: 0,30000000000000004 

Странно? Давайте посмотрим на другой тестовый пример

Фрагмент кода 2

Как вы думаете, сколько итераций должен пройти приведенный выше код? 10 верно? ниже наш ожидаемый результат.

 Ожидаемый результат: 
1,0
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1 9001 3

Однако когда мы компилируем и запускаем приведенный выше код, он не останавливается на 10 итерациях. Это будет продолжаться бесконечно, что приведет к бесконечному циклу. Кроме того, он печатает значение, которое отличается от того, что мы ожидали. Ниже приведена часть фактического вывода вышеуказанной программы.

 Фактический вывод: 
1,0
0,9
0,8
0,70000000000000001
0,60000000000000001
0,50000000000000001 9 0023 0,40000000000000013
0,300000000000000016
0,2000000000000000015
0,100000000000000014
1,387778780781 4457E-16
-0,09999999999999987
-0,19999999999999987
-0,29999999999999999
-0,39999999999999999
. ...... 9002 3 .......
.......

Причина вышеуказанной проблемы заключается в том, что Java соответствует стандарту IEEE 754 Standard 9.0058 для хранения чисел с плавающей запятой. Согласно стандарту IEEE 754 значение округляется при выполнении определенных условий. Итак, если он округляет значение, это означает, что он сохраняет другое значение вместо исходного, верно? В результате при выполнении вычислений с плавающей запятой java иногда возвращает немного отличающиеся результаты. Итак, давайте подробно рассмотрим, как выполняются вычисления с плавающей запятой с использованием стандарта IEEE 754.

В IEEE 754 есть правило, При вычислении мантиссы, если значение больше 23 бит, проверяется 24-й бит. Если 24-й бит равен «1», правило гласит, что мы должны добавить «1» к 23-му биту, чтобы округлить значение. поэтому в приведенном выше примере, поскольку значение больше 23-битного и поскольку значение 24-го бита равно «1», мы должны добавить дополнительную «1» в 23-й бит.