一轮到最近的五个
我需要把一个双精度到最接近的五个。 我找不到用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(); } }