Путь разработчика    

Используйте «округление банкира» и «нормальное округление» в C#

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

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

В отличие от обычного округления значения округляются до нуля. Например, 1.45 округляется до 1,5 и -1,45 округляется до -1,5.

Обратите внимание, что ни одно правило не требуется, если число не заканчивается на 5 в последней цифре, и эта цифра должна быть следующей после наименьшей цифры, которую вы хотите сохранить. Например, предположим, что вы округлите до ближайшей десятой. Значение 1.4500001 немного больше 1,45, поэтому оно округляется до 1,5, независимо от того, какую схему округления вы используете.

Метод Math.Round может принимать до трех параметров: число до раунда, количество цифр после десятичной точки для отображения и флаг, указывающий на способ использования округления или округления банкира округлить от 0.

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

// По умолчанию округление банкира дает 1.4.
double i = Math.Round(1.45, 1);

// Округление от 0 дает 1.5.
double j = Math.Round(1.45, 1, MidpointRounding.AwayFromZero);

Источник: http://csharphelper.com/blog/2017/01/use-bankers-rounding-and-normal-rounding-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Как сделать изображение прозрачным фоном в C#

Метод Bitmap класса MakeTransparent изменяет все пиксели с заданным цветом на прозрачный цвет A = 0, R = 0, G = 0, B = 0 Когда программа запускается, следу...

09 04 2020 12:20:34

Как открыть файл PDF в C#

Во время разработки я добавил в форму элемент WebBrowser. Когда программа запускается, он использует следующий код для открытия PDF-файла в элементе управл...

08 04 2020 14:13:12

Понимание переходных переменных в Java

Сериализация в Java - это механизм записи состояния объекта в поток байтов, а десериализация - это процесс преобразования потока байтов обратно в копию исх...

07 04 2020 3:53:50

Печать данных в строках и столбцах в C#

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

06 04 2020 7:45:11

Используйте двойную буферизацию, чтобы предотвратить мерцание при рисовании на C#

Пример Нарисуйте цветную кривую бабочки в C# показывает, как рисовать красочную кривую бабочки. Не упоминая об этом, я использовал двойную буферизацию в эт...

05 04 2020 23:27:36

Среда разработки PyCharm

PyCharm – интегрированная среда разработки для Python. Разрабатывалась компанией JetBrains. За основу взята другая интегрированная среда разработки Intelli...

04 04 2020 22:28:39

Получить HTML содержимое веб-страницы с помощью Python

Python предоставляет несколько способов сделать это в своей стандартной библиотеке . Вероятно, самый популярный способ загрузки файла - через HTTP с помощь...

03 04 2020 11:23:30


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69