Мне нужно округлить двойную до пяти. Я не могу найти способ сделать это с помощью функции Math.Round. Как я могу это сделать?
Что я хочу:
70 = 70
73.5 = 75
72 = 70
75.9 = 75
69 = 70
и т.д.
Есть ли простой способ сделать это?
Ответ 1
Try:
Math.Round(value / 5.0) * 5;
Ответ 2
Это работает:
5* (int)Math.Round(p / 5.0)
Ответ 3
Вот простая программа, которая позволяет вам проверять код.
Помните о параметре MidpointRounding, без него вы получите округление до ближайшего четного числа, что в вашем случае означает разницу в пять (в примере 72.5).
class Program
{
public static void RoundToFive()
{
Console.WriteLine(R(71));
Console.WriteLine(R(72.5)); //70 or 75? depends on midpoint rounding
Console.WriteLine(R(73.5));
Console.WriteLine(R(75));
}
public static double R(double x)
{
return Math.Round(x/5, MidpointRounding.AwayFromZero)*5;
}
static void Main(string[] args)
{
RoundToFive();
}
}