Метод Round
decimal.Round вызывают у структуры
Decimal,
а не у Math. По умолчанию при
ровно посередине между двумя целыми
используется MidpointRounding.ToEven
(к ближайшему чётному). Режим можно
задать вторым аргументом.
Синтаксис
decimal res = decimal.Round(value);
decimal res = decimal.Round(value, MidpointRounding.AwayFromZero);
Пример
Давайте округлим 1.5 по умолчанию:
using System;
class Program
{
static void Main()
{
decimal res = decimal.Round(1.5m);
Console.WriteLine(res);
}
}
Результат выполнения кода:
2
Пример
Давайте сравним MidpointRounding.ToEven и AwayFromZero для 2.5:
using System;
class Program
{
static void Main()
{
decimal even = decimal.Round(2.5m, MidpointRounding.ToEven);
decimal away = decimal.Round(2.5m, MidpointRounding.AwayFromZero);
Console.WriteLine(even + " " + away);
}
}
Результат выполнения кода:
2 3
Пример
Давайте округлим до двух знаков после запятой:
using System;
class Program
{
static void Main()
{
decimal res = decimal.Round(1.234m, 2);
Console.WriteLine(res);
}
}
Результат выполнения кода:
1.23