Вот простая программа, которая позволяет проверить код. Помните о параметре 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();
}
}
Этот метод должен работать для любого числа: Math.Round (значение/п) * п (см здесь: http://stackoverflow.com/questions/326476/vba-how-to-round-to- ближайший-5-или-10-или-x) –
предупреждение: это, вероятно, будет «почти округлено» из-за точности с плавающей запятой ... – tbischel