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

 C# – язык разработки, позволяющий создавать кроссплатформенные приложения и различные бизнес-программы. Он умеет работать с числовыми данными и выполнять над ними те или иные операции.

Сегодня предстоит познакомиться с округлением чисел в C#. Эта информация пригодится и программистам-новичкам, и более опытным разработчикам. С помощью представленных ниже сведений каждый заинтересовавшийся C# сможет освоить ключевые методы округления и разобраться в принципах их функционирования.

Типы данных и математические функции

C# – мощный язык разработки. Он предусматривает три собственных числовых типа данных для хранения значений с плавающей точкой (запятой). А именно:

  • float;
  • double;
  • decimal.

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

Наименее точным, но более распространенным в C# выступает тип float. Decimal является наиболее точным. Он поддерживает самый большой диапазон возможных значений. Double – что-то среднее между float и decimal.

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

Decimal – тип данных, с которым предстоит работать далее. Это связано с наличием у него дополнительных функциональных возможностей по сравнению с float и double. Иногда нужно будет привести имеющееся значение к decimal или воспользоваться членами класса Math.

Общая таблица методов

C# – мощный инструмент разработки, особенно относительно бизнес-задач. У него есть математические методы и функции, позволяющие выполнять те или иные расчеты. Для округления, в том числе.

Наиболее распространенным вариантом является Round. Он может работать со всеми типами чисел с плавающей запятой. Вот таблица, которая поможет быстрее разобраться в методах округления C#:

Округление чисел в C#

В предложенной таблице можно увидеть использование Round не только для Decimal, но и для других типов чисел с плавающей запятой. Это не единственный вариант округления в C#. Есть и другие концепции, помогающие добиться желаемого результата. На самом деле все напрямую зависит от условий задачи и от точности, которую необходимо получить в конечном итоге.

Далее будут изучены различные методы округления C#, включая Round. Предложенные ниже примеры наглядно продемонстрируют принципы их работы на практике.

Truncate

C# – язык программирования, поддерживающий множество математических операций. Округление – не исключение. В этом языке разработки допустимо проводить его при помощи множества методов. Все зависит от того, какой именно результат хочется получить в конечном итоге.

Перед более детальным рассмотрением процедуры округления в C# необходимо запомнить, что представленные далее методы работают в .NET Framework версии 2.0. В более ранних сборках они тоже бывают доступны, но их применение оказывается сильно ограниченным.

Первый метод, используемый для округления decimal, – это Truncate (или усечение). При его использовании система делает следующее:

  • берет дробные числа и удаляет из числа;
  • оставляет только целую часть, удерживая результат в десятичной интерпретации.

Вот – наглядный пример реализации данного метода:

Округление чисел в C#

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

Ceiling и Floor

У C# поддерживаются различные математические методы, округления в том числе. Кроме рассмотренного выше приема есть и другие подходы к реализации поставленной задачи. Разработчики могут воспользоваться статическими методами:

  • Floor;
  • Ceiling.

С их помощью система берет число, удаляет его дробную часть и возвращает в качестве результата целое значение. Посредством соответствующих методов число возвращается к десятичной структуре.

От Truncate Floor и Ceiling отличаются тем, что направление округления фиксируется как для положительных, так и для отрицательных чисел. В случае использования Floor система округлит значение по направлению «вниз», а Ceiling работает с округлением «вверх».

Округление чисел в C#

Выше – примеры кодов, наглядно объясняющих принципы работы с Floor и Ceiling. Они демонстрируют не только синтаксическую форму представления соответствующих методов, но и позволяют ознакомиться с их непосредственным округлением.

Контролируемое округление

C# поддерживает три описанных способа округления для решения основной массы задач. Они встречаются в большинстве сформированных сценариев. С целыми значениями соответствующие «команды» ограничены в плане работы. По «нормальным» правилам математического округления они не функционируют. Там, где требуется задействовать дополнительные функциональные возможности, необходимо использовать отдельный метод. Он называется Round. Соответствующий метод дает огромный контроль над округлением и позволяет более гибко работать с исходными данными.

Далее предстоит изучить Round более подробно. Ниже представлены приемы округления в C# с его помощью.

Простое округление

Метод Round может быть использован с одним параметром. Это самый простой вариант реализации поставленной изначально задачи. В качестве параметра должно выступать число, которое надо изменить.

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

Округление чисел в C#

При округлении значения между двумя целыми числами метод Round показывает весьма странный результат. Вот пример такой ситуации:

Округление чисел в C#

Согласно ранее представленной информации значения должны были округлиться до:

  • 2;
  • 3.

Этого не произошло. Сложившаяся ситуация обусловлена тем, что Round изначально использует правило средней точки (медианы). Оно гласит, что при округлении значения ровно на полпути между двумя целыми система выберет ближайшее значение.

Правила медианы

Два правила средней точки доступны при округлении чисел. Первое правило по умолчанию – оно представлено в примере выше. Есть еще одно правило. Оно называется «от нуля». Гласит, что, когда округляемое значение находится на полпути между двумя возможными результатами, система выберет то, что находится дальше от нуля:

  • при положительных числах – округление «вверх»;
  • при отрицательных числах – округление «вниз».

Чтобы воспользоваться данным принципом, к вызову метода необходимо добавить параметр MidpointRouting. Выглядит это примерно так:

Округление чисел в C#

Данный пример наглядно объясняет принцип работы правила медианы.

Округление до определенной точности

Ранее представленные округления позволяли работать с числами для возврата целых значений. Это не всегда правильно. Метод Round дает возможность проводить операцию чуть иначе. Речь идет об округлении до определенного количества знаков после запятой. Такой подход при математических расчетах позволяет добиваться более точных результатов.

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

Округление чисел в C#

В предложенном примере система использует правило медианы «по умолчанию» (ToEven). Оно применяется для того, чтобы округлить число. Конечная цифра будет округляться до ближайшего четного числа.

Округление чисел в C#

Правило медианы может быть успешно скорректировано. Для этого в C# требуется задействовать округление до количества знаков после запятой. Данная операция реализуется через третий параметр MedpointRouting.

Выглядит в программном коде это следующим образом:

Округление чисел в C#

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

StringFormat

Метод ToString() в C# тоже может помочь с округлением значений с плавающей точкой. Если использовать в процессе разработки программного обеспечения String.Format, удастся настроить рассматриваемую операцию с определенной точностью. А именно – совершить округление до точности «две цифры после запятой».

Округление чисел в C#

Выше представлен пример использования #. Здесь:

  • ## – спецификатор формата;
  • 0 – спецификатор пользовательского формата;
  • F – спецификатор формата с фиксированной точкой;
  • N – спецификатор числового формата.

Все представленные методы наглядно иллюстрируют принципы округления в C# в том или ином случае. Лучше разобраться с программированием на соответствующем языке, а также научиться писать приложения на нем помогут дистанционные компьютерные курсы. На них в срок от нескольких месяцев до года можно не только поверхностно выучить C# или любой другой язык разработки, но и изучить его более глубоко.

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

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