Округление в excel
Содержание:
- Введение
- Округлить до
- Как округлить до целого числа в Excel?
- Примеры использования функций округления
- Округление через формат ячеек
- Округление чисел формулой
- Round(Double, Int32)
- Оператор WorksheetFunction.Round
- ОКРУГЛИТЬ: более сложная формула округления
- C# decimal to int
- Что такое округление?
- Round(Double, MidpointRounding)
- Точные правила округления чисел
- Round(Decimal, MidpointRounding)
- Итог
Введение
Типы данных используются для управления переменными. Каждый из типов данных обрабатывается в соответствии с определенными правилами. Поскольку C# — язык со строгой типизацией, то абсолютно все выполняемые операции проверяются на соответствие типов (во избежание ошибок производится их предварительный контроль). Если какая-либо операция с типами недопустима, итоговая программа не будет скомпилирована. По сути, разработка программного обеспечения на C# представляет собой создание и организацию взаимодействия между различными типами данных.
В языке C# типы данных имеют две категории:
- Типы значений — это тип данных, содержащий значения данных в собственном пространстве памяти. Хранятся в стеке, а потому их можно быстро создавать и удалять.
- Ссылочные типы — хранят ссылку на значения и указывают на другую ячейку памяти, в которой хранятся данные. Хранятся в управляемой куче.
Округлить до
MulTEx » 13 Январь 2020 Дмитрий 2507 просмотров
Данная функция является частью надстройки MulTEx
|
Вызов команды: MulTEx -группа Ячейки/Диапазоны —Ячейки —Округлить до
Команда округляет все числа в выделенных ячейках до указанного количества десятичных разрядов:
Округлить значения выделенных ячеек до — указывается количество десятичных разрядов, до которого надо округлить число. Например, если в ячейке записано число 45 127,1384. и указано 2, то число будет округлено до двух знаков после запятой, при этом произойдет округление ровно так же, как это делает Excel: 45 127,14. Но есть и другие ситуации — когда округлить надо не просто знаки — а целые числа. К примеру, число 45 127,13 необходимо округлить до тысяч, чтобы получить 45 000. Тогда надо будет указать количество знаков после запятой с минусом: -3. Если число надо просто округлить до целого, то необходимо указать количество знаков после запятой — 0. Диапазон знаков работает от -15 до 15.
Не изменять ячейки с формулами — если установлен, то округление будет производится исключительно для ячеек, не содержащих формулы. Может пригодиться, если на листе перемешаны ячейки с данными, вводимыми вручную и формулами, которые производят вычисления на основании введенных вручную. Тогда можно выделить все ячейки, не задумываясь в каких формулы, а в каких нет, установить флажок Не изменять ячейки с формулами и выполнить команду.
Преобразовывать числа, записанные как текст, в числа — по умолчанию команда игнорирует ячейки, в которых записан текст. При этом если в ячейке записано число, но записано как текст, то команда воспримет его как текст и проигнорирует. Заметка: Что такое число, записанное как текст? Это когда в ячейке отображается число, но по типу данных является текстом. Как правило такие числа помечаются зеленым треугольником в левом верхнем углу ячейки. Формат отображения для таких чисел невозможно изменить напрямую через Формат ячеек, многие функции не учитывают(например СУММ(SUM)).
Если установить флажок Преобразовывать числа, записанные как текст, в числа, то команда Округлить до сама определит такие числа, преобразует их в реальные числа и округлит. Иначе команда будет игнорировать такие числа, считая их текстом.
Так же надо быть осторожным с датами и временем. Т.к. эти данные являются для Excel числовыми, то они так же будут округлены, что может быть нежелательным. Читать подробнее про то, как Excel воспринимает данные >>
Для чего это вообще может быть нужно? Часто при выгрузке документов из других систем и файлов(вроде 1С, файлов CSV, текстовых файлов и т.п.) в Excel числа выгружаются с «хвостами» — 5 и более знаков после запятой: 546 932,78923. Но в ячейке они могут отображаться с округлением — 546 932,79. Как правило это происходит из-за назначенного формата ячеек через Формат ячеек —Число —Числовой —Число десятичных знаков=2:
Это часто приводит к расхождениям расчетов формулами с расчетами на калькуляторе, т.к. на калькуляторе мы суммируем числа с двумя знаками после запятой, а Excel при суммировании формулами учитывает все 5 знаков, т.е. реальное значение числа. Часто в таких ситуациях применяют функции вроде ОКРУГЛ(ROUND), но далеко не всегда это удобно и практично, т.к. формула должна быть записана в другие ячейки. А это приводит к дополнительным неудобствам(создание доп.столбцов, дублирование листов, таблиц и т.п.). С помощью команды Округлить до это можно сделать прямо в этих же ячейках, при этом допускается выделить несколько несмежных ячеек или всю нужную область на листе, вызвать команду и указать нужное количество десятичных разрядов. Так же можно указать, чтобы преобразовывались исключительно ячейки с числами, а ячейки с формулами пропускались. Для этого надо установить флажок Не изменять ячейки с формулами.
Как округлить до целого числа в Excel?
Чтобы округлить до целого в большую сторону используем функцию «ОКРУГЛВВЕРХ». Чтобы округлить до целого в меньшую сторону используем функцию «ОКРУГЛВНИЗ». Функция «ОКРУГЛ» и формата ячеек так же позволяют округлить до целого числа, установив количество разрядов – «0» (см.выше).
В программе Excel для округления до целого числа применяется также функция «ОТБР». Она просто отбрасывает знаки после запятой. По сути, округления не происходит. Формула отсекает цифры до назначенного разряда.
Сравните:
Второй аргумент «0» – функция отсекает до целого числа; «1» – до десятой доли; «2» – до сотой доли и т.д.
Специальная функция Excel, которая вернет только целое число, – «ЦЕЛОЕ». Имеет единственный аргумент – «Число». Можно указать числовое значение либо ссылку на ячейку.
Недостаток использования функции «ЦЕЛОЕ» – округляет только в меньшую сторону.
Округлить до целого в Excel можно с помощью функций «ОКРВВЕРХ» и «ОКРВНИЗ». Округление происходит в большую или меньшую сторону до ближайшего целого числа.
Пример использования функций:
Второй аргумент – указание на разряд, до которого должно произойти округление (10 – до десятков, 100 – до сотен и т.д.).
Округление до ближайшего целого четного выполняет функция «ЧЕТН», до ближайшего нечетного – «НЕЧЕТ».
Пример их использования:
Округление с помощью кнопок на ленте
Самый простой способ изменить округление — это выделить ячейку или группу ячеек и, находясь на вкладке «Главная», нажать на ленте на кнопку «Увеличить разрядность» или «Уменьшить разрядность». Обе кнопки располагаются в блоке инструментов «Число». Будет округляться только отображаемое число, но для вычислений при необходимости будут задействованы до 15 разрядов чисел.
При нажатии на кнопку «Увеличить разрядность» количество внесенных знаков после запятой увеличивается на один.
Кнопка «Уменьшить разрядность», соответственно, уменьшает на одну количество цифр после запятой.
Установка точности расчетов
Если в предыдущих случаях устанавливаемые параметры влияли только на внешнее отображения данных, а при расчетах использовались более точные показатели (до 15 знака), то сейчас мы расскажем, как изменить саму точность расчетов.
- Перейдите на вкладку «Файл», оттуда — в раздел «Параметры».
Откроется окно параметров Excel. В этом окне зайдите в подраздел «Дополнительно». Отыщите блок настроек под названием «При пересчете этой книги». Настройки в этом блоке применяются не к одному листу, а к книге в целом, то есть ко всему файлу. Поставьте галочку напротив параметра «Задать точность как на экране» и нажмите «OK».
Теперь при расчете данных будет учитываться отображаемая величина числа на экране, а не та, которая хранится в памяти Excel. Настройку же отображаемого числа можно провести любым из двух способов, о которых мы говорили выше.
Примеры использования функций округления
ОКРУГЛ(1,475;2) Округляет число 1,475 до двух десятичных разрядов, в результате получается 1,48;
ОКРУГЛВВЕРХ(3,14159;3) Округляет с избытком число 3,14159 до трех десятичных разрядов, результат 3,142;
ОКРУГЛВНИЗ(3,14159) Округляет с недостатком число 3,14159 до трех десятичных разрядов, результат 3,141;
ОКРУГЛТ(10;3) Округляет число 10 до ближайшего числа, кратного 3, то есть до 9;
ОКРВВЕРХ(2,5;1) Округляет число 2,5 до ближайшего большего числа, кратного 1, то есть до 3;
ОКРВНИЗ(2,5;1) Округляет число 2,5 до ближайшего меньшего числа, кратного 1, то есть до 2.
Для того, чтобы избежать возможных неточностей и ошибок, следует тщательно подбирать форматы и способы округления при формировании таблиц в Excel. Если же таблицы уже сформированы не совсем так, как вам бы этого хотелось, то табличные данные можно программно обработать средствами VBA, прибегнув к помощи макросов.
Округление через формат ячеек
Также можно выставить округление с помощью настроек формата ячеек. Для этого, нужно выделить диапазон ячеек на листе, кликнуть правой кнопкой мыши, и в появившемся меню выбрать пункт «Формат ячеек».
В открывшемся окне настроек формата ячеек нужно перейти во вкладку «Число». Если формат данных указан не числовой, то нужно выбрать именно числовой формат, иначе вы не сможете регулировать округление. В центральной части окна около надписи «Число десятичных знаков» просто указываем цифрой то число знаков, которое желаем видеть при округлении. После этого, выполняем клик по кнопке «OK».
Округление чисел формулой
Второй способ предполагает реальное округление числа. Для этого используется формулы, с помощью которых задается исходное число, которое нужно округлить и количество знаков после запятой (разрядов), которые нужно сохранить.
Для округления чисел существуют следующие формулы:
=ОКРУГЛ(ячейка; количество разрядов) | Округляет до указанного количества дробных разрядов. |
=ОКРУГЛВВЕРХ(ячейка; количество разрядов) | Округляет до ближайшего большего по модулю. |
=ОКРУГЛВНИЗ(ячейка; количество разрядов) | Округляет до ближайшего меньшего по модулю значения. |
Данные формулы принимают по два аргумента. «Ячейка» — это любое действительное число или адрес ячейки. А «количество разрядом» — это количество знаков после запятой, которые нужно сохранить.
До сотых
Например, для того чтобы округлить число в ячейке B2 до сотых (до двух разрядов) нужно использовать формулу «=ОКРУГЛ(B2; 2)», где B2 – это адрес ячейки, а второе число «2» — это количество цифр после запятой.
До десятых
Для округления до десятых формула такая же «=ОКРУГЛ(B2; 1)», но во втором аргументе, который указывает на количество цифр после запятой, указываем «1».
До целого числа
Тоже самое и при округлении до целого числа. Используем ту же формулу «=ОКРУГЛ(B2; 0)», но во втором аргументе указываем «».
До десятков или сотни
При необходимости данную формулу можно использовать для округления целой части числа до десятков или до сотни. Для этого во втором аргументе нужно указать отрицательное значение. Например, значение «-1» приведет к округлению до десятков, «-2» до сотни и т. д.
Округление вверх или вниз
Формула «ОКРУГЛ» использует стандартные правила округления, когда в зависимости от значения число может округляться к большему или меньшему значению. Если вам нужно округлить число строго вверх, вне зависимости от самого числа, то следует использовать формулу «=ОКРУГЛВВЕРХ(ячейка; количество разрядов)», а для округления строго вниз нужно использовать формулу «=ОКРУГЛВНИЗ(ячейка; количество разрядов)».
Формулы «ОКРУГЛВВЕРХ» и «ОКРУГЛВНИЗ» работают точно также, как и «ОКРУГЛ». Первый аргумент формулы принимает число или адрес ячейки, а второй – количество цифр после запятой. Для округления до десятков или сотен нужно использовать отрицательные значения.
Round(Double, Int32)
Math.Round(d, decimals) rounds a double-precision floating-point value to a specified number of fractional digits , and rounds midpoint values to the nearest even number.
Syntax
The syntax of Round(d, decimals) method is
Math.Round(Double d, Int32 decimals)
where
Parameter | Description |
---|---|
d | The double-precision floating-point number to be rounded. |
decimals | The number of decimal places in the return value. |
Return Value
The method returns rounded Double value.
Example 6 – Round(Double, Int32)
In this example, we will take some decimal double-precision floating-point numbers and round them to specific number of decimal points using Math.Round() method.
C# Program
using System; class Example { static void Main(string[] args) { Double d, result; Int32 decimals; d = 10.2563; decimals = 2; result = Math.Round(d, decimals); Console.WriteLine($"Round({d}, {decimals}) = {result}"); d = 10.63524; decimals = 1; result = Math.Round(d, decimals); Console.WriteLine($"Round({d}, {decimals}) = {result}"); d = 10.5; decimals = 0; result = Math.Round(d, decimals); Console.WriteLine($"Round({d}, {decimals}) = {result}"); } }
Output
Round(10.2563, 2) = 10.26 Round(10.63524, 1) = 10.6 Round(10.5, 0) = 10
Оператор WorksheetFunction.Round
Если вам необходимо общепринятое математическое округление, используйте встроенную функцию рабочего листа — WorksheetFunction.Round.
Скопируйте в модуль VBA процедуру с использованием WorksheetFunction.Round и запустите ее выполнение:
1 |
SubTest_2() Dima1 AsSingle,a2 AsSingle,a3 AsSingle,a4 AsSingle a1=WorksheetFunction.Round(1.5,) a2=WorksheetFunction.Round(2.5,) a3=WorksheetFunction.Round(3.5,) a4=WorksheetFunction.Round(4.5,) MsgBox»WorksheetFunction.Round(1.5, 0)=»&a1&vbNewLine&_ «WorksheetFunction.Round(2.5, 0)=»&a2&vbNewLine&_ «WorksheetFunction.Round(3.5, 0)=»&a3&vbNewLine&_ «WorksheetFunction.Round(4.5, 0)=»&a4 EndSub |
Результат будет следующий:
Получилось то, что мы и ожидали.
Проверим погрешность:
- Сумма исходных чисел: 1.5 + 2.5 + 3.5 +4.5 = 12
- Сумма округленных чисел: 2 + 3 + 4 + 5 = 14
Результат очевиден — в данном случае сумма округленных чисел на 2 единицы больше суммы исходных.
Исходя из этого результата, можно сделать вывод, что «банковское» округление с помощью оператора Round дает более точные результаты при массовых операциях с округленными числами. Но в повседневной жизни чаще встречается обычное математическое округление.
Выбирайте округление, которое вам больше подходит для решаемой задачи!
ОКРУГЛИТЬ: более сложная формула округления
Вы можете использовать функцию VRUNDEN для округления значения до соответствующего кратного другого числа. Как и в случае с обычной функцией ОКРУГЛИТЬ, вы сначала вводите значение в формулу, которое должно быть округлено. С помощью этого метода вы также можете либо ввести значение напрямую, сослаться на ячейку или поставить на ее место другую функцию. Второй аргумент — это значение, которое должно быть округлено до кратного.
=ОКРУГЛ (Число;Кратное)
Например, если вы хотите отображать результаты только с шагом 25, вы можете использовать функцию ОКРУГЛИТЬ. Расстояние до кратно решает, округлять ли вверх или вниз. Excel всегда выберет кратчайшее расстояние. Если расстояние одинаково в обоих направлениях, число округляется в большую сторону.
=ОКРУГЛ (136;25) = 125 =ОКРУГЛ (142;25) = 150
Вы также можете работать с функцией ОКРУГЛИТЬ, если вы всегда хотите округлить минуты вверх или вниз до ближайшего часа.
=ОКРУГЛ (A1;60)/60
Вы можете выполнять более сложные задачи округления в Excel с помощью функции ОКРУГЛИТЬ.
C# decimal to int
Метод создан для преобразования значения в эквивалентное 32-разрядное целое число со знаком.
Пример:
/ C# program to demonstrate the // Decimal.ToInt32(Decimal) Method using System; class GFG { // Main Method public static void Main() { try { // Taking decimal variables Decimal dec1 = 2147483647M; Decimal dec2 = 21458565.2996m; // using Decimal.ToInt32(Decimal) Method // Here int means Int32 int val1 = Decimal.ToInt32(dec1); // using Decimal.ToInt32(Decimal) Method // Here int means Int32 int val2 = Decimal.ToInt32(dec2); // Printing the Int32 value Console.WriteLine("The Int32 value " + "is : {0}", val1); // Printing the Int32 value Console.WriteLine("The Int32 value " + "is : {0}", val2); } catch (OverflowException e) { Console.Write("Exception Thrown: "); Console.Write("{0}", e.GetType(), e.Message); } } }
Вывод: и .
Что такое округление?
Округление – это математическая операция, которая позволяет уменьшить количество знаков после запятой в числе, заменив это число его приближенным значением с определенной точностью.
Существуют различные способы округления, такие как округление к большему, округление к меньшему, округление к большему по модулю, округление к меньшему по модулю, случайное округление, чередующееся округление, ненулевое округление, банковское округление.
Наиболее распространенный способ – математическое округление, когда число округляется в меньшую сторону, если в числе «отбрасываемая» цифра меньше пяти и округляется в большую сторону, если в числе «отбрасываемая» цифра больше либо равна пяти.
Остановимся на способах округления и отображения числовых значений, используемых в Excel.
Round(Double, MidpointRounding)
Math.Round(d, mode) rounds a double-precision floating-point value to the nearest integer, and uses the specified rounding convention for midpoint values.
Syntax
The syntax of Round(d, mode) method is
Math.Round(Double d, MidpointRounding mode)
where
Parameter | Description |
---|---|
d | The double-precision floating-point number to be rounded. |
mode | Specification for how to round the value if it is midway between two other numbers. |
Return Value
The method returns rounded Double value.
Example 8 – Round(Double, MidpointRounding)
In this example, we will take some double-precision floating-point numbers and round them with different modes using Math.Round() method.
C# Program
using System; class Example { static void Main(string[] args) { Double d, result; d = 10.2; result = Math.Round(d, MidpointRounding.AwayFromZero); Console.WriteLine($"Round({d}, MidpointRounding.AwayFromZero) = {result}"); d = 10.8; result = Math.Round(d, MidpointRounding.ToEven); Console.WriteLine($"Round({d}, MidpointRounding.ToEven) = {result}"); d = 10.8; result = Math.Round(d, MidpointRounding.ToNegativeInfinity); Console.WriteLine($"Round({d}, MidpointRounding.ToNegativeInfinity) = {result}"); d = 10.2; result = Math.Round(d, MidpointRounding.ToPositiveInfinity); Console.WriteLine($"Round({d}, MidpointRounding.ToPositiveInfinity) = {result}"); d = 10.8; result = Math.Round(d, MidpointRounding.ToZero); Console.WriteLine($"Round({d}, MidpointRounding.ToZero) = {result}"); } }
Output
Round(10.2, MidpointRounding.AwayFromZero) = 10 Round(10.8, MidpointRounding.ToEven) = 11 Round(10.8, MidpointRounding.ToNegativeInfinity) = 10 Round(10.2, MidpointRounding.ToPositiveInfinity) = 11 Round(10.8, MidpointRounding.ToZero) = 10
Conclusion
In this C# Tutorial, we have learnt the syntax of C# Math.Round() method, and also learnt how to use this method with the help of examples.
Точные правила округления чисел
При округлении десятичных дробей недостаточно просто отбросить цифры после округляемого разряда. Убедиться в этом можно на таком примере. Если в магазине куплено 2 кг 150 г конфет, то говорят, что приобретено около 2 кг сладостей. Если же вес составляет 2 кг 850 г, то производят округление в большую сторону, то есть около 3 кг. То есть видно, что иногда округляемый разряд изменен. Когда и как это проделывают, смогут ответить точные правила:
- Если после округляемого разряда следует цифра 0, 1, 2, 3 или 4, то округляемый оставляют неизменным, а все последующие цифры отбрасываются.
- Если после округляемого разряда следует цифра 5, 6, 7, 8 или 9, то округляемый увеличивают на единицу, а все последующие цифры также отбрасываются.
К примеру, как правильно дробь 7,41 приблизить к единицам. Определяют цифру, которая следует за разрядом. В данном случае это 4. Следовательно, согласно правилу, число 7 оставляют неизменным, а цифры 4 и 1 отбрасывают. То есть получаем 7.
Если округляется дробь 7,62, то после единиц следует цифра 6. Согласно правилу, 7 необходимо увеличить на 1, а цифры 6 и 2 отбросить. То есть в результате получится 8.
Представленные примеры показывают, как округлить десятичные дроби до единиц.
Приближение до целых
Отмечено, что округлять до единиц можно точно так же, как и до целых. Принцип один и тот же. Остановимся подробнее на округлении десятичных дробей до определенного разряда в целой части дроби. Представим пример приближения 756,247 до десятков. В разряде десятых располагается цифра 5. После округляемого разряда следует цифра 6. Следовательно, по правилам необходимо выполнить следующие шаги:
- округление в большую сторону десятков на единицу,
- в разряде единиц цифру 6 заменяют нулем,
- цифры в дробной части числа отбрасываются,
- в результате получают 760.
Обратим внимание на некоторые значения, в которых процесс математического округления до целых по правилам не отображает объективную картину. Если взять дробь 8,499, то, преобразовывая его по правилу, получаем 8
Но по сути это не совсем так. Если поразрядно округлить до целых, то вначале получим 8,5, а затем отбрасываем 5 после запятой, и осуществляем округление в большую сторону.
Получаем 9, что, в принципе, не сосем точно. То есть в таких значениях погрешность существенна. Поэтому оцениваем задачу и, если ситуация позволяет, то лучше использовать значение 8,5.
Приближение до десятых
Как округлить до десятых, до сотых, до тысячных? Операция осуществляется по таким же правилам, как и до целых. Основная задача – правильно определить округляемый разряд и знак, который следует за ним.
К примеру, дробь 6,7864 при доведении:
- до десятых становится равной 6,8,
- до сотых – 6,79,
- если округлить до тысячных, то получают 6,786.
Обратите внимание! Незнание этих правил очень удачно используют маркетологи. В магазинах, наблюдая ценник с указанием числа 5,99, большинством покупателей воспринимается цена, равная 5
В действительности же цена товара практически 6.
Математика учимся округлять числа
Правила округления чисел до десятых
Round(Decimal, MidpointRounding)
Math.Round(d, mode) rounds a decimal value to the nearest integer, and uses the specified rounding convention for midpoint values.
Syntax
The syntax of Round(d, mode) method is
Math.Round(Decimal d, MidpointRounding mode)
where
Parameter | Description |
---|---|
d | The decimal number to be rounded. |
mode | Specification for how to round the value if it is midway between two other numbers. |
Return Value
The method returns rounded Decimal value.
Example 4 – Round(Decimal, MidpointRounding)
In this example, we will take some decimal values and round them with different modes using Math.Round() method.
C# Program
using System; class Example { static void Main(string[] args) { Decimal d, result; d = 10.2M; result = Math.Round(d, MidpointRounding.AwayFromZero); Console.WriteLine($"Round({d}, MidpointRounding.AwayFromZero) = {result}"); d = 10.8M; result = Math.Round(d, MidpointRounding.ToEven); Console.WriteLine($"Round({d}, MidpointRounding.ToEven) = {result}"); d = 10.8M; result = Math.Round(d, MidpointRounding.ToNegativeInfinity); Console.WriteLine($"Round({d}, MidpointRounding.ToNegativeInfinity) = {result}"); d = 10.2M; result = Math.Round(d, MidpointRounding.ToPositiveInfinity); Console.WriteLine($"Round({d}, MidpointRounding.ToPositiveInfinity) = {result}"); d = 10.8M; result = Math.Round(d, MidpointRounding.ToZero); Console.WriteLine($"Round({d}, MidpointRounding.ToZero) = {result}"); } }
Output
Round(10.2, MidpointRounding.AwayFromZero) = 10 Round(10.8, MidpointRounding.ToEven) = 11 Round(10.8, MidpointRounding.ToNegativeInfinity) = 10 Round(10.2, MidpointRounding.ToPositiveInfinity) = 11 Round(10.8, MidpointRounding.ToZero) = 10
Итог
Типы данных могут быть простыми и сложными. Сложные типы чаще всего данные структурируют, а у простых значения данных неделимы. Любой язык программирования имеет систему встроенных типов данных, на их основе можно создавать свои производные.
В C# типы данных подразделяются на две большие группы:
- типы значений (входит большинство встроенных типов в т.ч. пользовательские) — для их создания применяется ключевое слово ;
- ссылочные типы — для их создания применяется ключевое слово .
Закрепить материал по типам C#-данных можно на основе этого замечательного видео, где дополняется все сказаное нами: