Си шарп функция округления

MathF. Round Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Перегрузки

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

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

Округляет значение с плавающей запятой одиночной точности до ближайшего целого значения; значения посередине округляются до ближайшего четного числа.

Округляет значение с плавающей запятой одиночной точности до указанного числа знаков после запятой; значения посередине округляются до ближайшего четного числа.

Round(Single, Int32, MidpointRounding)

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

public: static float Round(float x, int digits, MidpointRounding mode);
public static float Round (float x, int digits, MidpointRounding mode);
static member Round : single * int * MidpointRounding -> single
Public Shared Function Round (x As Single, digits As Integer, mode As MidpointRounding) As Single

Параметры

Округляемое число одиночной точности с плавающей запятой.

Читайте также:  Read in text file line by line python

Количество цифр дробной части в возвращаемом значении.

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

Возвращаемое значение

Число, x округленное до , имеет digits дробные цифры. Если x имеет меньшее количество цифр дробной части, чем digits , то x возвращается без изменений.

Исключения

Параметр digits имеет значение меньше 0 или больше 6.

mode не является допустимым значением MidpointRounding.

Комментарии

Значение аргумента digits может варьироваться от 0 до 6. Максимальное число целых и дробных цифр, поддерживаемых типом Single , равно 6.

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

Если аргумент имеет Single.NaNзначение x , метод возвращает Single.NaN. Если x имеет значение Single.PositiveInfinity или Single.NegativeInfinity, метод возвращает Single.PositiveInfinity или Single.NegativeInfinityсоответственно.

См. также раздел

Применяется к

Round(Single, MidpointRounding)

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

public: static float Round(float x, MidpointRounding mode);
public static float Round (float x, MidpointRounding mode);
static member Round : single * MidpointRounding -> single
Public Shared Function Round (x As Single, mode As MidpointRounding) As Single

Параметры

Округляемое число одиночной точности с плавающей запятой.

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

Возвращаемое значение

Целое число, округляемое x до с помощью соглашения об mode округлении. Этот метод возвращает Single вместо целочисленного типа.

Исключения

mode не является допустимым значением MidpointRounding.

Комментарии

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

Если аргумент имеет Single.NaNзначение x , метод возвращает Single.NaN. Если x имеет значение Single.PositiveInfinity или Single.NegativeInfinity, метод возвращает Single.PositiveInfinity или Single.NegativeInfinityсоответственно.

См. также раздел

Применяется к

Round(Single)

Округляет значение с плавающей запятой одиночной точности до ближайшего целого значения; значения посередине округляются до ближайшего четного числа.

public: static float Round(float x);
public static float Round (float x);
static member Round : single -> single
Public Shared Function Round (x As Single) As Single

Параметры

Округляемое число одиночной точности с плавающей запятой.

Возвращаемое значение

Целое число, ближайшее к значению параметра x . Если дробная часть x находится на равном расстоянии от двух целых чисел (четного и нечетного), возвращается четное число. Обратите внимание, что данный метод возвращает не целочисленное значение, а значение типа Single.

Комментарии

Этот метод использует соглашение округления по умолчанию для MidpointRounding.ToEven.

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

Если аргумент имеет Single.NaNзначение x , метод возвращает Single.NaN. Если x имеет значение Single.PositiveInfinity или Single.NegativeInfinity, метод возвращает Single.PositiveInfinity или Single.NegativeInfinityсоответственно.

Примечания для тех, кто вызывает этот метод

Из-за потери точности, которая может быть результатом представления десятичных значений в виде чисел с плавающей запятой или выполнения арифметических операций со значениями с плавающей запятой, в некоторых случаях Round(Single) метод может не округлить значения середины до ближайшего четного целого числа.

См. также раздел

Источник

Double. Round Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Перегрузки

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

Округляет значение до указанного числа дробных цифр, используя режим округления по умолчанию (ToEven).

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

Округляет значение до указанного числа дробных цифр, используя режим округления по умолчанию (ToEven).

Round(Double)

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

public: static double Round(double x) = System::Numerics::IFloatingPoint::Round;
public static double Round (double x);
static member Round : double -> double
Public Shared Function Round (x As Double) As Double

Параметры

Возвращаемое значение

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

Реализации

Применяется к

Round(Double, Int32)

Округляет значение до указанного числа дробных цифр, используя режим округления по умолчанию (ToEven).

public: static double Round(double x, int digits) = System::Numerics::IFloatingPoint::Round;
public static double Round (double x, int digits);
static member Round : double * int -> double
Public Shared Function Round (x As Double, digits As Integer) As Double

Параметры

Число дробных цифр, до которых x необходимо округлить.

Возвращаемое значение

Результат округления x до digits дробных цифр в режиме округления по умолчанию.

Реализации

Применяется к

Round(Double, MidpointRounding)

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

public: static double Round(double x, MidpointRounding mode) = System::Numerics::IFloatingPoint::Round;
public static double Round (double x, MidpointRounding mode);
static member Round : double * MidpointRounding -> double
Public Shared Function Round (x As Double, mode As MidpointRounding) As Double

Параметры

Возвращаемое значение

Результат округления x до ближайшего целого числа с помощью mode .

Реализации

Применяется к

Round(Double, Int32, MidpointRounding)

Округляет значение до указанного числа дробных цифр, используя режим округления по умолчанию (ToEven).

public: static double Round(double x, int digits, MidpointRounding mode) = System::Numerics::IFloatingPoint::Round;
public static double Round (double x, int digits, MidpointRounding mode);
static member Round : double * int * MidpointRounding -> double
Public Shared Function Round (x As Double, digits As Integer, mode As MidpointRounding) As Double

Параметры

Число дробных цифр, до которых x необходимо округлить.

Возвращаемое значение

Результат округления x до digits дробных цифр с помощью mode .

Источник

Учимся округлять в C#

А знаете ли вы, что Math.Round(1.5) == Math.Round(2.5) == 2 ? Можете ли сходу сказать, сколько будет -7%3 и 7%-3 ? Помните ли, чем отличаются Math.Round , Math.Floor , Math.Ceiling , Math.Truncate ? А как происходит округление при использовании string.Format ? Давайте немного погрузимся в мир округлений и разберёмся с нюансами, которые не для всех могут быть очевидными.

Math.Round

 Math.Round — это метод округления к ближайшему числу или к ближайшему числу с заданным количеством знаков после запятой. Работает с типами decimal и double , в параметрах можно встретить три вида параметров:
  • value : округляемое число
  • digits : количество знаков в дробной части, которые нужно оставить
  • mode : параметр, который определяет в какую сторону округлять число, которое находится ровно посередине между двумя вариантами

Параметр mode используется, когда округляемое значение находится ровно посередине между двумя вариантами. Принимает значение из следующего перечисления:

Обратите внимание, что по умолчанию mode == MidpointRounding.ToEven , поэтому Math.Round(1.5) == Math.Round(2.5) == 2 .

Math.Floor, Math.Ceiling, Math.Truncate

Сводная таблица

Сориентироваться в методах округления может помочь следующая табличка:

Округление проводится в соответствии со стандартом IEEE Standard 754, section 4.

Целочисленное деление и взятие по модулю

В C# есть два замечательных оператора над целыми числами: / для целочисленного деления (MSDN) и % для взятия остатка от деления (MSDN). Деление производится по следующим правилам:

  • При целочисленном делении результат всегда округляется по направлению к нулю.
  • При взятии остатка от деления должно выполняться следующее правило: x % y = x – (x / y) * y

Также можно пользоваться шпаргалкой:

string.Format

При форматировании чисел в виде строки можно пользоваться функцией string.Format (см. Standard Numeric Format Strings, Custom Numeric Format Strings). Например, для вывода числа с двумя знаками после десятичной точки можно воспользоваться string.Format(«», value) или string.Format(«», value) . Округление происходит по принципу AwayFromZero . Проиллюстрируем правила округления очередной табличкой:

Задачи

На приведённую тему есть две задачки в ProblemBook.NET: Rounding1, Rounding2.

Источник

Оцените статью