一轮到最近的五个

我需要把一个双精度到最接近的五个。 我找不到用Math.Round函数来做的方法。 我怎样才能做到这一点?

我想要的是:

70 = 70 73.5 = 75 72 = 70 75.9 = 75 69 = 70 

等等..

是否有捷径可寻?

尝试:

 Math.Round(value / 5.0) * 5; 

这工作:

 5* (int)Math.Round(p / 5.0) 

这是一个简单的程序,可以让你validation代码。 注意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(); } }