C#:分页、Math.Ceiling

发布于 2024-10-09 18:50:14 字数 209 浏览 2 评论 0原文

我正在创建一些分页,但遇到了问题。

如果我有一个数字 12,并且我想将其除以 5(5 是我想要在一页上显示的结果数),我该如何正确地将其四舍五入?这不起作用:

int total = 12;
int pages = Math.Ceiling(12 / 5);
//pages = 2.4... but I need it to be 3

I'm creating some pagination and I'm getting an issue.

If I have a number 12 and I want to divide that by 5 (5 is the number of results I want on a page), how would I round it up properly? This doesn't work:

int total = 12;
int pages = Math.Ceiling(12 / 5);
//pages = 2.4... but I need it to be 3

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

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

发布评论

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

评论(2

旧时光的容颜 2024-10-16 18:50:14

即使您的代码应该可以工作,但 Math.Round 是错误的,您可以尝试这样做:

int pages = (total + pageSize - 1)/pageSize;

这应该与 Math.Ceiling 相同,只是您总是处理 <当 Math.Ceiling 返回时,code>int 而不是 double

编辑:要让您的代码正常工作,您可以尝试:

int pages = (int)Math.Ceiling((double)12/(double)5);

但您应该使用第一个示例。

Even though your code should work, Math.Round is wrong though, you could try this:

int pages = (total + pageSize - 1)/pageSize;

That should be the same as Math.Ceiling except that you are always dealing with int and not double at any point as Math.Ceiling returns.

EDIT: To get your code to work you could try:

int pages = (int)Math.Ceiling((double)12/(double)5);

But you should use the first example.

翻了热茶 2024-10-16 18:50:14

你可以这样做:

int numPages = Math.Ceiling((decimal)12 / (decimal)5);

或者

int numPages = (12 + 4) / 5;  //(total + (perPage - 1)) / perPage

you could do:

int numPages = Math.Ceiling((decimal)12 / (decimal)5);

or

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