当前位置:  开发笔记 > 编程语言 > 正文

.NET方法将数字四舍五入到另一个数字的最接近的倍数?

如何解决《.NET方法将数字四舍五入到另一个数字的最接近的倍数?》经验,为你挑选了3个好方法。

我正在寻找能圆了许多的方法到另一个最接近的倍数.这类似于量化.

例如.如果我想将81舍入到最接近的20的倍数,它应该返回100.

我可以在.NET框架中使用内置方法吗?

我要求内置方法的原因是因为它很有可能已经被优化了.



1> Joe..:

是的,整数运算.

要将m舍入到n的下一个倍数,请使用((m + n-1)/ n)*n


你似乎错过了我要求"内置"方法的部分.

2> LeppyR64..:
public static int RoundUp(int num, int multiple)
{
  if (multiple == 0)
    return 0;
  int add = multiple / Math.Abs(multiple);
  return ((num + multiple - add) / multiple)*multiple;
}


static void Main()
{
  Console.WriteLine(RoundUp(5, -2));
  Console.WriteLine(RoundUp(5, 2));
}

/* Output
 * 4
 * 6
*/



3> von v...:

Lee的答案很好但应该是:

t = m + n - 1; return (t - (t % m));

注意从变化NM.模运算应该使用乘数(m)而不是数字来完成(n).

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有