C#:分页,Math.Ceiling

dco*_*bus 5 .net c# rounding

我正在创造一些分页,我遇到了一个问题.

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

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

Tom*_*son 13

即使你的代码应该工作,Math.Round但是错了,你可以试试这个:

int pages = (total + pageSize - 1)/pageSize;
Run Code Online (Sandbox Code Playgroud)

这应该是相同的,Math.Ceiling除了你总是在处理int而不是double在任何时候作为Math.Ceiling回报.

编辑:要使您的代码工作,您可以尝试:

int pages = (int)Math.Ceiling((double)12/(double)5);
Run Code Online (Sandbox Code Playgroud)

但是你应该使用第一个例子.


Cha*_*had 6

你可以这样做:

int numPages = Math.Ceiling((decimal)12 / (decimal)5);
Run Code Online (Sandbox Code Playgroud)

要么

int numPages = (12 + 4) / 5;  //(total + (perPage - 1)) / perPage
Run Code Online (Sandbox Code Playgroud)