Je dois arrondir un double au cinq le plus proche. Je ne trouve pas de moyen de le faire avec la fonction Math.Round. Comment puis-je faire ceci?
Ce que je veux:
70 = 70
73.5 = 75
72 = 70
75.9 = 75
69 = 70
etc..
Y a-t-il un moyen facile de faire ceci?
Essayer:
Math.Round(value / 5.0) * 5;
Cela marche:
5* (int)Math.Round(p / 5.0)
Voici un programme simple qui vous permet de vérifier le code. Soyez conscient du paramètre MidpointRounding, sans lui, vous obtiendrez l'arrondi au nombre pair le plus proche, ce qui dans votre cas signifie une différence de cinq (dans l'exemple 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();
}
}