Методы C# для округления двойных значений: Math.Round, Math.Floor, Math.Ceiling, Math.Truncate и пользовательское округление.

В C# существует несколько методов округления двойного значения. Вот некоторые часто используемые методы:

  1. Метод Math.Round: метод Math.Round используется для округления двойного числа до ближайшего целого числа или до указанного количества десятичных знаков. Он использует алгоритм округления, заданный перечислением MidpointRounding.
double number = 3.7;
double roundedNumber = Math.Round(number);
Console.WriteLine(roundedNumber);  // Output: 4
double decimalNumber = 3.14159;
double roundedDecimal = Math.Round(decimalNumber, 2);
Console.WriteLine(roundedDecimal);  // Output: 3.14
  1. Метод Math.Floor: метод Math.Floor возвращает наибольшее целое число, меньшее или равное указанному значению double. Он эффективно округляет число до ближайшего целого числа.
double number = 3.7;
double roundedNumber = Math.Floor(number);
Console.WriteLine(roundedNumber);  // Output: 3
  1. Метод Math.Ceiling: метод Math.Ceiling возвращает наименьшее целое число, большее или равное указанному значению double. Он эффективно округляет число до ближайшего целого числа.
double number = 3.2;
double roundedNumber = Math.Ceiling(number);
Console.WriteLine(roundedNumber);  // Output: 4
  1. Метод Math.Truncate: метод Math.Truncate возвращает целую часть указанного значения double без округления. Он эффективно удаляет дробную часть числа.
double number = 3.7;
double truncatedNumber = Math.Truncate(number);
Console.WriteLine(truncatedNumber);  // Output: 3
  1. Пользовательские методы округления. Вы также можете реализовать собственные методы округления в соответствии с вашими конкретными требованиями. Например, если вы хотите округлить до определенного количества десятичных знаков, вы можете умножить число на коэффициент, округлить его с помощью метода Math.Round, а затем разделить на тот же коэффициент.
double number = 3.14159;
int decimalPlaces = 2;
double factor = Math.Pow(10, decimalPlaces);
double roundedNumber = Math.Round(number * factor) / factor;
Console.WriteLine(roundedNumber);  // Output: 3.14