Функции округления в excel
Содержание:
- Допустимы ли расчеты с работниками в полных рублях?
- ОКРВВЕРХ.МАТ и ОКРВНИЗ.МАТ
- Применения
- Округление чисел
- ОКРУГЛТ
- Примеры
- Округление числа с помощью формата ячеек
- Округление при работе с числами ограниченной точности
- Круглое число
- Неточные вычисления
- Округление в меньшую сторону до ближайшего целого числа
- Операции с десятичными дробями
- Приближённые значения
- Способы записи числа
- Формат чисел через контекстное меню
- Обозначения
- Правила округления десятичной дроби
- Варианты округления 0,5 к ближайшему целому
Допустимы ли расчеты с работниками в полных рублях?
Начислениезаработной платы округлятьнельзя:
- размер тарифной ставки (оклад) в точной сумме должен быть указан в трудовом договоре (ст. 57 ТК РФ);
- все изменения в оплате труда подписываются двусторонним письменным соглашением (ст. 72 ТК РФ).
Если округлен расчет зарплаты – значит изменен
размер тарифной ставки (оклада) без согласования сторон, а этонарушение.Выплата заработной платы
можетокругляться в большую сторону в пользу работника (Письмо Минздравсоцразвития от 07.12.2005 N 4334-17):
- округление в меньшую сторону ведет к недоплате заработной платы;
- при окончательном расчете с работником (при увольнении) следует выплатить сумму в рублях и копейках;
- порядок округления (в большую сторону) при выплате зарплаты необходимо прописать ЛНА в соответствии со ст. 8 ТК РФ.
Пособия
по нетрудоспособности и в связи с материнством, а также пособия по уходу за ребенком округлятьнельзя (Письмо ФСС от 28.01.2014 N 17-03-11/06-1026).
ОКРВВЕРХ.МАТ и ОКРВНИЗ.МАТ
Округление с заданной точностью также можно производить принудительно вверх или вниз с помощью ОКРВВЕРХ.МАТ и ОКРВНИЗ.МАТ. Например, при расчете заказа, когда никак нельзя заказать меньше расчетного объема, но при этом нужно и кратность сохранить. То есть одна «лишняя» штука требует заказа дополнительно целого ящика. Аргументы функции те же.
Это были основные формулы округления в Excel. Но есть еще парочку, которые используются реже.
Функция ЦЕЛОЕ в Excel отбрасывает дробную часть и таким образом округляет вниз до ближайшего целого. Будет полезна при расчете целого количество лет между датами (возраст человека).
Функции ЧЁТН и НЕЧЁТ округляют числа до ближайшего четного или нечетного значения соответственно.
Видеоуроки ниже показываю основные приемы округления, а также некоторые трюки.
Применения
Округление используется для того, чтобы работать с числами в пределах того количества знаков, которое соответствует реальной точности параметров вычислений (если эти значения представляют собой измеренные тем или иным образом реальные величины), реально достижимой точности вычислений либо желаемой точности результата. В прошлом округление промежуточных значений и результата имело прикладное значение (так как при расчётах на бумаге или с помощью примитивных устройств типа абака учёт лишних десятичных знаков может серьёзно увеличить объём работы). Сейчас оно остаётся элементом научной и инженерной культуры. В бухгалтерских приложениях, кроме того, использование округлений, в том числе промежуточных, может требоваться для защиты от вычислительных ошибок, связанных с конечной разрядностью вычислительных устройств.
Округление чисел
Для нахождения приближенного значения применяется такое действие как округление чисел.
Слово «округление» говорит само за себя. Округлить число значит сделать его круглым. Круглым называется число, которое оканчивается нулём. Например, следующие числа являются круглыми:
10, 20, 30, 100, 300, 700, 1000
Любое число можно сделать круглым. Процедуру, при которой число делают круглым, называют округлением числá.
Мы уже занимались «округлением» чисел, когда делили большие числа. Напомним, что для этого мы оставляли без изменения цифру, образующую старший разряд, а остальные цифры заменяли нулями. Но это были лишь наброски, которые мы делали для облегчения деления. Своего рода лайфхак. По факту, это даже не являлось округлением чисел. Именно поэтому в начале данного абзаца мы взяли слово округление в кавычки.
На самом деле, суть округления заключается в том, чтобы найти ближайшее значение от исходного. При этом, число может быть округлено до определённого разряда — до разряда десятков, разряда сотен, разряда тысяч.
Рассмотрим простой пример на округление. Дано число 17. Требуется округлить его до разряда десятков.
Не забегая вперёд попробуем понять, что означает «округлить до разряда десятков». Когда говорят округлить число 17, то надо понимать, что от нас требуют найти ближайшее круглое число от числá 17. Причём в ходе этого поиска возможно изменения коснутся и той цифры, которая располагается в разряде десятков числá 17 (т.е цифры 1).
Предстáвим числа от 10 до 20 с помощью следующего рисунка:
На рисунке видно, что для числá 17 ближайшее круглое число это число 20. Значит ответ к задаче таким и будет: «17 приближённо равно 20″
17 ≈ 20
Мы нашли приближённое значение для 17, то есть округлили его до разряда десятков. Видно, что после округления в разряде десятков появилась новая цифра 2.
Попробуем найти приближённое число для числа 12. Для этого снова предстáвим числа от 10 до 20 с помощью рисунка:
На рисунке видно, что ближайшее круглое число для 12 это число 10. Значит ответ к задаче таким и будет: 12 приближённо равно 10
12 ≈ 10
Мы нашли приближённое значение для 12, то есть округлили его до разряда десятков. В этот раз цифра 1, которая стояла в разряде десятков в числе 12, не пострадала от округления. Почему так получилось мы расскажем позже.
Попробуем найти ближайшее число для числá 15. Снова предстáвим числа от 10 до 20 с помощью рисунка:
На рисунке видно, что число 15 одинаково удалено от круглых чисел 10 и 20. Возникает вопрос: которое из этих круглых чисел будет приближённым значением для числа 15? Для таких случаев условились принимать бóльшее число за приближённое. 20 больше чем 10, поэтому приближённое значение для 15 будет число 20
15 ≈ 20
Округлять можно и большие числа. Естественно, для них делать рисунки и изображать числа не представляется возможным. Для них существует свой способ. Например, округлим число 1456 до разряда десятков.
Итак, мы должны округлить 1456 до разряда десятков. Разряд десятков начинается на пятёрке:
Теперь о существовании первых цифр 1 и 4 временно забываем. Остается число 56
Теперь смотрим, какое круглое число находится ближе к числу 56. Очевидно, что ближайшее круглое число для 56 это число 60. Значит заменяем число 56 на число 60
Значит при округлении числа 1456 до разряда десятков полýчим 1460
1456 ≈ 1460
Видно, что после округления числа 1456 до разряда десятков, изменения коснулись и самогó разряда десятков. В новом полученном числе в разряде десятков теперь располагается цифра 6, а не 5.
Округлять числа можно не только до разряда десятков. Округлять число можно до разряда сотен, тысяч, десятков тысяч и так далее.
После того, как станóвится ясно, что округление это ни что иное как поиск ближáйшего числá, можно применять готовые правила, которые значительно облегчают округление чисел.
ОКРУГЛТ
Довольно полезная функция ОКРУГЛТ. С ее помощью можно добиться округления не только до нужного разряда (слева или справа от запятой), но и вообще до нужной точности (кратности). К примеру, нужно рассчитать заказ изделий в штуках, но так, чтобы он был равен целому количеству ящиков. Если в ящике 6 шт, то заказываемое количество должно быть кратно шести. Или другой пример. Нужно, чтобы расчетная цена заканчивалась либо на 00, либо на 50, то есть имела кратность 50 рублей. Функция ОКРУГЛТ легко решает такие задачи.
Очень, очень правильная функция. Позволяет избежать 3-х промежуточных расчетов (разделить на кратность, округлить до целого и снова умножить на кратность, как я сам делал, пока не узнал про эту формулу).
Примеры
Округлите до сотых: 0,1436
На третьем месте после запятой цифра 3, поэтому вторую оставляем без изменений
Ответ: 0,14
Округлите до сотых: 54,1281
На третьем месте после запятой стоит цифра 8, значит вторую цифру мы увеличиваем на единицу.
Ответ: 54,13
Есть также случай, когда на втором месте после запятой стоит цифра 9, а на третьем — 5, 6, 7, 8 или 9. В таком случае при округлении до сотых мы должны прибавить к 9 единицу — получается 10. Мы пишем на втором месте 0, и уже к первой цифре после запятой прибавляем единицу.
Например, число 56,798 после округления будет иметь вид 56,8.
Внимание, только СЕГОДНЯ!
Округление числа с помощью формата ячеек
Формат ячеек позволит выбрать необходимое количество цифр, которое должно отображаться в числе после запятой.
Округлять будем число 23,5168 в ячейке А1. Кликаем по нему правой кнопкой мыши и из контекстного меню выбираем «Формат ячеек».
Дальше, на вкладке «Число» из списка «Числовые форматы» выберите «Числовой». В поле «Число десятичных знаков» поставьте нужное значение. Нажмите «ОК».
Количество знаков после запятой уменьшилось до 2-х. Как видите, округление числа происходит по математическим законам: если отбрасываемая цифра меньше пяти – число округляется в меньшую сторону, если больше пяти или равно – в большую.
Значение в ячейке изменилось только визуально. В строке формул по-прежнему стоит число 23,5168, и именно оно будет браться для любых расчетов, в которых будет указана ячейка А1.
Чтобы уменьшить или увеличить количество знаков после запятой, можно использовать и следующий способ. На вкладке «Главная» в группе «Число» Вы найдете две кнопочки «Увеличить разрядность» и «Уменьшить разрядность».
Выделим ячейку А1 и нажмем один раз на кнопку «Уменьшить разрядность». Получим вот такой результат.
Округление при работе с числами ограниченной точности
Реальные физические величины всегда измеряются с некоторой конечной точностью, которая зависит от приборов и методов измерения и оценивается максимальным относительным или абсолютным отклонением неизвестного истинного значения от измеренного, что в десятичном представлении значения соответствует либо определённому числу значащих цифр, либо определённой позиции в записи числа, все цифры после (правее) которой являются незначащими (лежат в пределах погрешности измерения). Сами измеренные параметры записываются с таким числом знаков, чтобы все цифры были надёжными, возможно, последняя — сомнительной. Погрешность при математических операциях с числами ограниченной точности сохраняется и изменяется по известным математическим законам, поэтому когда в дальнейших вычислениях возникают промежуточные значения и результаты с больши́м числом цифр, из этих цифр только часть являются значимыми. Остальные цифры, присутствуя в значениях, фактически не отражают никакой физической реальности и лишь отнимают время на вычисления. Вследствие этого промежуточные значения и результаты при вычислениях с ограниченной точностью округляют до того количества знаков, которое отражает реальную точность полученных значений. На практике обычно рекомендуется при длинных «цепочных» ручных вычислениях сохранять в промежуточных значениях на одну цифру больше. При использовании компьютера промежуточные округления в научно-технических приложениях чаще всего теряют смысл, и округляется только результат.
Так, например, если задана сила 5815 гс с точностью до грамма силы и длина плеча 1,40 м с точностью до сантиметра, то момент силы в кгс по формуле M=(mg)⋅h{\displaystyle M=(mg)\cdot h}, в случае формального расчёта со всеми знаками, окажется равным: 5,815 кгс • 1,4 м = 8,141 кгс•м. Однако если учесть погрешность измерения, то мы получим, что предельная относительная погрешность первого значения составляет 1/5815 ≈ 1,7•10−4, второго — 1/140 ≈ 7,1•10−3, относительная погрешность результата по правилу погрешности операции умножения (при умножении приближённых величин относительные погрешности складываются) составит 7,3•10−3, что соответствует максимальной абсолютной погрешности результата ±0,059 кгс•м! То есть в реальности, с учётом погрешности, результат может составлять от 8,082 до 8,200 кгс•м, таким образом, в рассчитанном значении 8,141 кгс•м полностью надёжной является только первая цифра, даже вторая — уже сомнительна! Корректным будет округление результата вычислений до первой сомнительной цифры, то есть до десятых: 8,1 кгс•м, или, при необходимости более точного указания рамок погрешности, представить его в виде, округлённом до одного-двух знаков после запятой с указанием погрешности: 8,14 ± 0,06 кгс•м.
Округление рассчитанного значения погрешности
Обычно в окончательном значении рассчитанной погрешности оставляют только первые одну-две значащие цифры. По одному из применяемых правил, если значение погрешности начинается с цифр 1 или 2(по другому правилу — 1, 2 или 3), то в нём сохраняют две значащих цифры, в остальных случаях — одну, например: 0,13; 0,26; 0,3; 0,8. То есть каждая декада возможных значений округляемой погрешности разделена на две части. Недостаток этого правила состоит в том, что относительная погрешность округления изменяется значительным скачком при переходе от числа 0,29 к числу 0,3. Для устранения этого предлагается каждую декаду возможных значений погрешности делить на три части с менее резким изменением шага округления. Тогда ряд разрешённых к употреблению округлённых значений погрешности получает вид:
- 0,10; 0,12; 0,14; 0,16; 0,18;
- 0,20; 0,25; 0,30; 0,35; 0,40; 0,45;
- 0,5; 0,6; 0,7; 0,8; 0,9; 1,0.
Однако при использовании такого правила последние цифры самого результата, оставляемые после округления, также должны соответствовать приведённому ряду.
Пересчёт значений физических величин
Пересчёт значения физической величины из одной системы единиц в другую должен производиться с сохранением точности исходного значения. Для этого исходное значение в одних единицах следует умножить (разделить) на переводной коэффициент, часто содержащий большое количество значащих цифр, и округлить полученный результат до количества значащих цифр, обеспечивающего точность исходного значения. Например, при пересчёте значения силы 96,3 тс в значение, выраженное в килоньютонах (кН), следует умножить исходное значение на переводной коэффициент 9,80665 (1 тс = 9,80665 кН). В результате получается значение 944,380395 кН, которое необходимо округлить до трёх значащих цифр. Вместо 96,3 тс получаем 944 кН.
Круглое число
Перед тем как перейти к правилам округления значений, стоит разобраться, что представляет собой круглое число. Если речь идет о целых, то оно обязательно заканчивается нулем.
На вопрос, где в повседневной жизни пригодиться такое умение, можно смело ответить – при элементарных походах по магазинам.
С помощью правила приблизительного подсчета можно прикинуть, сколько будут стоить покупки и какую сумму необходимо взять с собой.
Именно с круглыми числами легче выполнять подсчеты, не используя при этом калькулятор.
К примеру, если в супермаркете или на рынке покупают овощи весом 2 кг 750 г, то в простом разговоре с собеседником зачастую не называют точный вес, а говорят, что приобрели 3 кг овощей. При определении расстояния между населенными пунктами также применяют слово «около». Это и значит приведение результата к удобному виду.
Следует отметить, что при некоторых подсчетах в математике и решении задач также не всегда используются точные значения. Особенно это актуально в тех случаях, когда в ответе получают бесконечную периодическую дробь. Приведем несколько примеров, когда используются приближенные значения:
- некоторые значения постоянных величин представляются в округленном виде (число «пи» и прочее),
- табличные значения синуса, косинуса, тангенса, котангенса, которые округлены до определенного разряда.
Обратите внимание! Как показывает практика, приближение значений к целому, конечно, дает погрешность, но сосем незначительную. Чем выше разряд, тем точнее будет результат
Неточные вычисления
Внутри JavaScript число представлено в виде 64-битного формата IEEE-754. Для хранения числа используется 64 бита: 52 из них используется для хранения цифр, 11 из них для хранения положения десятичной точки (если число целое, то хранится 0), и один бит отведён на хранение знака.
Если число слишком большое, оно переполнит 64-битное хранилище, JavaScript вернёт бесконечность:
Наиболее часто встречающаяся ошибка при работе с числами в JavaScript – это потеря точности.
Посмотрите на это (неверное!) сравнение:
Да-да, сумма и не равна .
Странно! Что тогда, если не ?
Но почему это происходит?
Число хранится в памяти в бинарной форме, как последовательность бит – единиц и нулей. Но дроби, такие как , , которые выглядят довольно просто в десятичной системе счисления, на самом деле являются бесконечной дробью в двоичной форме.
Другими словами, что такое ? Это единица делённая на десять — , одна десятая. В десятичной системе счисления такие числа легко представимы, по сравнению с одной третьей: , которая становится бесконечной дробью .
Деление на гарантированно хорошо работает в десятичной системе, но деление на – нет. По той же причине и в двоичной системе счисления, деление на обязательно сработает, а становится бесконечной дробью.
В JavaScript нет возможности для хранения точных значений 0.1 или 0.2, используя двоичную систему, точно также, как нет возможности хранить одну третью в десятичной системе счисления.
Числовой формат IEEE-754 решает эту проблему путём округления до ближайшего возможного числа. Правила округления обычно не позволяют нам увидеть эту «крошечную потерю точности», но она существует.
Пример:
И когда мы суммируем 2 числа, их «неточности» тоже суммируются.
Вот почему – это не совсем .
Не только в JavaScript
Справедливости ради заметим, что ошибка в точности вычислений для чисел с плавающей точкой сохраняется в любом другом языке, где используется формат IEEE 754, включая PHP, Java, C, Perl, Ruby.
Можно ли обойти проблему? Конечно, наиболее надёжный способ — это округлить результат используя метод toFixed(n):
Также можно временно умножить число на 100 (или на большее), чтобы привести его к целому, выполнить математические действия, а после разделить обратно. Суммируя целые числа, мы уменьшаем погрешность, но она все равно появляется при финальном делении:
Таким образом, метод умножения/деления уменьшает погрешность, но полностью её не решает.
Забавный пример
Попробуйте выполнить его:
Причина та же – потеря точности. Из 64 бит, отведённых на число, сами цифры числа занимают до 52 бит, остальные 11 бит хранят позицию десятичной точки и один бит – знак. Так что если 52 бит не хватает на цифры, то при записи пропадут младшие разряды.
Интерпретатор не выдаст ошибку, но в результате получится «не совсем то число», что мы и видим в примере выше. Как говорится: «как смог, так записал».
Два нуля
Другим забавным следствием внутреннего представления чисел является наличие двух нулей: и .
Все потому, что знак представлен отдельным битом, так что, любое число может быть положительным и отрицательным, включая нуль.
В большинстве случаев это поведение незаметно, так как операторы в JavaScript воспринимают их одинаковыми.
Округление в меньшую сторону до ближайшего целого числа
Если вы хотите округлять в меньшую сторону, используйте метод Math.floor():
Math.floor(42.23); > 42 Math.floor(36.93); > 36
Округление «вниз» имеет одно направление для всех чисел, в том числе и для отрицательных. Это можно представить, как небоскреб с бесконечным количеством этажей, в том числе и ниже уровня фундамента (представляющих отрицательные числа). Если вы находитесь в лифте между подвальными этажами 2 и 3 (что соответствует значению -2.5), Math.floor доставит вас на этаж -3:
Math.floor(-2.5); > -3
Если нужно избежать этого, используйте JavaScript Math округление с помощью Math.trunc(), поддерживаемый во всех современных браузерах (кроме IE / Edge):
Math.trunc(-41.43); > -41
MDN также предоставляет полифилл из трех строк для обеспечения поддержки Math.trunc в старых браузерах и IE / Edge.
Операции с десятичными дробями
Дробь включает целую и дробную части. Первая округляется аналогично натуральным числам. В случае со второй отбрасываемые цифры не просто заменяются нулём, а убираются.
Например, необходимо округлить дробь 3,284 до целых. Это обозначает, что стоя́щие после запятой цифры нужно «удалить». Решение:
- Начинать следует с конца. В разряде тысячных указана 4. Она меньше 5, поэтому цифра отбрасывается, а остальное не меняется: 3,284≈3,28.
- А вот число 8 больше 5. Цифра 2, что идёт перед ней, увеличивается на единицу. Так число округляется до десятых 3,28≈3,3.
- Последнее вычисление делается по аналогии. Так как 3<5, то 3,3≈3.
- Конечный ответ — 3,284≈3.
Приближённые значения
Иногда в вычисления нет необходимости использовать точные числовые значения. Для ускорения или упрощения расчётов очень часто достаточно получения приближенного результата. Для этого производят округления чисел, которые участвуют в расчетах а также и конечный результат вычислений
Приближённые значения используют тогда, когда точное значение чего-либо найти невозможно, или же это значение не важно для исследуемого предмета
Например можно сказать, что дорога до дома занимает полчаса
Это прибличительное значение, поскольку точно сказать сколько времени займет путь до дома или слишком сложно или в большинстве случаев не так важно. Главное обозначить порядок чисел и этого бывает вполне достаточно
В математике приближенные значения указываются с помощью специального знака.
\
Чтобы указать приблизительное значение чего-либо, используют округление чисел.
Способы записи числа
Представьте, что нам надо записать число 1 миллиард. Самый очевидный путь:
Но в реальной жизни мы обычно опускаем запись множества нулей, так как можно легко ошибиться. Укороченная запись может выглядеть как или для 7 миллиардов 300 миллионов. Такой принцип работает для всех больших чисел.
В JavaScript можно использовать букву , чтобы укоротить запись числа. Она добавляется к числу и заменяет указанное количество нулей:
Другими словами, производит операцию умножения числа на 1 с указанным количеством нулей.
Сейчас давайте запишем что-нибудь очень маленькое. К примеру, 1 микросекунду (одна миллионная секунды):
Записать микросекунду в укороченном виде нам поможет .
Если мы подсчитаем количество нулей , их будет 6. Естественно, верная запись .
Другими словами, отрицательное число после подразумевает деление на 1 с указанным количеством нулей:
Шестнадцатеричные числа широко используются в JavaScript для представления цветов, кодировки символов и многого другого. Естественно, есть короткий стиль записи: , после которого указывается число.
Например:
Не так часто используются двоичные и восьмеричные числа, но они также поддерживаются для двоичных и для восьмеричных:
Есть только 3 системы счисления с такой поддержкой. Для других систем счисления мы рекомендуем использовать функцию (рассмотрим позже в этой главе).
Формат чисел через контекстное меню
Нужную степень отображаемого на экране округления можно изменить и другим способом – через контекстное меню ячейки.
- Выделяем нужную ячейку (или область, состоящую из нескольких ячеек) и кликаем по ней правой кнопкой мыши. В контекстном меню выбираем пункт “Формат ячеек…”.
- Откроется окно, в котором в верхнем меню переходим во вкладку “Число” (по умолчанию должна быть установлена именно эта вкладка). В списке слева выбираем “Числовой” формат. Справа находим надпись “Число десятичных знаков”, рядом с которым есть текстовое поле для выбора количества знаков дробной части. Можно ввести его самостоятельно или дойти до нужного значения путем нажатия на стрелки вверх или вниз.
- Далее нажимаем на “ОК”, после чего изменения вступят в силу.
Примечание: Также можно поставить галочку напротив надписи “Разделитель групп разрядов”, чтобы при отображении больших чисел разграничить группы разрядов.
Обозначения
Операция округления числа x к большему (вверх) обозначается следующим образом: ⌈x⌉{\displaystyle \lceil x\rceil }. Аналогично, округление к меньшему (вниз) обозначается ⌊x⌋{\displaystyle \lfloor x\rfloor }. Эти символы (а также английские названия для этих операций — соответственно, ceiling и floor, досл. «потолок» и «пол») были введеныК. Айверсоном в его работе A Programming Language, описавшей систему математических обозначений, позже развившуюся в язык программирования APL. Айверсоновские обозначения операций округления были популяризированы Д. Кнутом в его книге «Искусство программирования».
По аналогии, округление к ближайшему целому часто обозначают как x{\displaystyle \left}. В некоторых прежних и современных (вплоть до конца XX века) работах так обозначалось округление к меньшему; такое использование этого обозначения восходит ещё к работе Гаусса 1808 года (третье его доказательство квадратичного закона взаимности). Кроме того, это же обозначение используется (с другим значением) в нотации Айверсона.
В стандарте Юникод зафиксированы следующие символы:
Названиев Юникоде | Код в Юникоде | Вид | Мнемоникав HTML 4 | Примечания | |
---|---|---|---|---|---|
16-ричный | десятичный | ||||
LEFT CEILING (тж. APL upstile) | 2308 | 8968 | ⌈ | ⌈ | не путать с:
|
RIGHT CEILING | 2309 | 8969 | ⌉ | ⌉ | не путать с:
|
LEFT FLOOR (тж. APL downstile) | 230A | 8970 | ⌊ | ⌊ | не путать с: |
RIGHT FLOOR | 230B | 8971 | ⌋ | ⌋ | не путать с:
|
Правила округления десятичной дроби
Точность — это вежливость королей. А математика, как известно, царица наук, поэтому, чем меньше приближенных значений в ваших решениях, тем лучше.
В повседневной жизни редко можно услышать приближенное значение в ответ на вопросы:
— Который час?
— Какой вес?
— Сколько стоит?
Вряд ли кто-то из нас слышал в ответ 17 часов 27 минут 16 секунд, 1 килограмм 952 грамма или 543 рубля (ладно, с последним бывает).
Округление — это то, с чем мы сталкиваемся каждый день. Поэтому лучше как можно раньше овладеть искусством доводить до приближенного значения. Чтобы без запинки отвечать: половина седьмого; 2 килограмма; 550 рублей.
Число, полученное при округлении, называют приближенным значением данного числа.
Десятичную дробь можно округлить как до целых, так и до разрядов дробной части: десятых, сотых, тысячных и т.д. Чтобы без труда округлить любую десятичную дробь, нужно знать названия всех разрядов.
Если число c < х < d, тогда с — это приближенное значение x с недостатком. А d — это приближенное значение x с избытком.
Чтобы округлить дробную часть десятичной дроби, пользуйтесь следующими правилами:
- Подчеркните цифру округляемого разряда.
- Отделите все цифры, стоящие справа.
- Если справа от цифры, которую нужно округлить, стоит 0, 1, 2, 3 или 4 — цифра остается без изменений. Отбросьте все цифры справа от цифры округляемого разряда.
- Если справа от цифры округляемого разряда стоит 5, 6, 7, 8 или 9 — к цифре округляемого разряда прибавляем один. Отбросьте все цифры справа.
Приближенное значение записывается после вот такого знака: ≈
Еще одно правило округления, которое нужно запомнить Если при округлении десятичной дроби последней из оставшихся цифр в дробной части оказывается ноль, то его не нужно отбрасывать. Оставшийся ноль показывает, до какого разряда округлено число. Если десятичную дробь округляем до разряда выше единиц (десятков, сотен и т.д.), то дробная часть отбрасывается, а целая часть округляется по правилам округления натуральных чисел. |
Варианты округления 0,5 к ближайшему целому
Отдельного описания требуют правила округления для специального случая, когда (N+1)-й знак = 5, а последующие знаки равны нулю. Если во всех остальных случаях округление до ближайшего целого обеспечивает меньшую погрешность округления, то данный частный случай характерен тем, что для однократного округления формально безразлично, производить его «вверх» или «вниз» — в обоих случаях вносится погрешность ровно в 1/2 младшего разряда. Существуют следующие варианты правила округления до ближайшего целого для данного случая:
- Математическое округление[источник не указан 278 дней] — округление всегда в бо́льшую по модулю сторону (предыдущий разряд всегда увеличивается на единицу).
- Округление до ближайшего чётного (в английском языке известно под названием англ. banker’s rounding — «округление банкира») — округление для этого случая происходит к ближайшему чётному числу, то есть 2,5 → 2; 3,5 → 4.
- Случайное округление — округление происходит в меньшую или большую сторону в случайном порядке, но с равной вероятностью (может использоваться в статистике).
- Чередующееся округление — округление происходит в меньшую или большую сторону поочерёдно.
Во всех вариантах в случае, когда (N+1)-й знак не равен 5 или последующие знаки не равны нулю, округление происходит по обычным правилам: 2,49 → 2; 2,51 → 3.
Математическое округление просто формально соответствует общему правилу округления (см. выше). Его недостатком является то, что при округлении большого числа значений, которые далее будут обрабатываться совместно, может происходить накопление ошибки округления. Типичный пример: округление до целых рублей денежных сумм, выражаемых в рублях и копейках. В реестре из 10 000 строк (если считать копеечную часть каждой суммы случайным числом с равномерным распределением, что обычно вполне допустимо) окажется в среднем около 100 строк с суммами, содержащими в части копеек значение 50. При округлении всех таких строк по правилам математического округления «вверх» сумма «итого» по округлённому реестру окажется на 50 рублей больше точной.
Три остальных варианта как раз и придуманы для того, чтобы уменьшить общую погрешность суммы при округлении большого количества значений. Округление «до ближайшего чётного» исходит из предположения, что при большом числе округляемых значений, имеющих 0,5 в округляемом остатке, в среднем половина из них окажется слева, а половина — справа от ближайшего чётного, таким образом, ошибки округления взаимно погасятся. Строго говоря, предположение это верно лишь тогда, когда набор округляемых чисел обладает свойствами случайного ряда, что обычно верно в бухгалтерских приложениях, где речь идёт о ценах, суммах на счетах и так далее. Если же предположение будет нарушено, то и округление «до чётного» может приводить к систематическим ошибкам. Для таких случаев лучше работают два следующих метода.
Два последних варианта округления гарантируют, что примерно половина специальных значений будет округлена в одну сторону, половина — в другую. Но реализация таких методов на практике требует дополнительных усилий по организации вычислительного процесса.
- Округление в случайную сторону требует для каждой округляемой строки генерировать случайное число. При использовании псевдослучайных чисел, создаваемых линейным рекуррентным методом, для генерации каждого числа требуется операция умножения, сложения и деления по модулю, что для больших объёмов данных может существенно замедлить расчёты.
- Чередующееся округление требует хранить флаг, показывающий, в какую сторону последний раз округлялось специальное значение, и при каждой операции переключать значение этого флага.