C# - 将数字四舍五入到小数点后 0 位

发布于 2024-09-26 20:02:48 字数 214 浏览 4 评论 0原文

我需要将数字四舍五入到小数点后 0(对于分页系统)。

我已经尝试过这样的事情:

Math.Round(double1, 0, MidpointRounding.AwayFromZero);

如果 double1 是 7,2 或 7,6 我需要它四舍五入为 8 但我没有得到。

有人可以帮我吗?

谢谢

I need to round numbers to 0 decimals (for a pagging system).

I've already tried something like this:

Math.Round(double1, 0, MidpointRounding.AwayFromZero);

If the double1 be 7,2 or 7,6 i need it to round for 8 but i'm not getting that.

Can someone help me, please?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苏璃陌 2024-10-03 20:02:48

使用 Math.Ceiling始终向上舍入到下一个整数:

double roundUp = Math.Ceiling(double1); 

Use Math.Ceiling to always round up to the next integer:

double roundUp = Math.Ceiling(double1); 
安静 2024-10-03 20:02:48

如果您出于某种原因不想使用 Math.Ceiling - 您可以这样做:

 public int Ceil(double x) {
  return (int) x + ((int) x < x ? 1 : 0);
 }

If you don't want to use Math.Ceiling, for some reason - you could do:

 public int Ceil(double x) {
  return (int) x + ((int) x < x ? 1 : 0);
 }
相思碎 2024-10-03 20:02:48

根据你的情况..使用 p=1..

float RoundTo(float x, float p)
{
  float y = 1/p;
  return int((x+(1/(y+y)))*y)/y;
}

float RoundUp(float x, float p)
{
  float y = 1/p;
  return int((x+(1/y))*y)/y;
}

float RoundDown(float x, float p)
{
  float y = 1/p;
  return int(x*y)/y;
}

At your case.. Use p=1..

float RoundTo(float x, float p)
{
  float y = 1/p;
  return int((x+(1/(y+y)))*y)/y;
}

float RoundUp(float x, float p)
{
  float y = 1/p;
  return int((x+(1/y))*y)/y;
}

float RoundDown(float x, float p)
{
  float y = 1/p;
  return int(x*y)/y;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文