我正在制作一些分页,但我遇到了问题。
如果我有一个12号而我想将它除以5(5是我想要的页面上的结果数),我该如何正确地将其四舍五入?这不起作用:
int total = 12;
int pages = Math.Ceiling(12 / 5);
//pages = 2.4... but I need it to be 3
答案 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