C#:分页,Math.Ceiling

时间:2010-12-30 22:41:23

标签: c# .net rounding

我正在制作一些分页,但我遇到了问题。

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

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

2 个答案:

答案 0 :(得分:13)

即使你的代码应该有效,Math.Round也是错误的,你可以试试这个:

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

这应该与Math.Ceiling相同,只是在int返回时,您始终处理double而不是Math.Ceiling

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

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

但你应该使用第一个例子。

答案 1 :(得分:6)

你可以这样做:

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

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