我正在创造一些分页,我遇到了一个问题.
如果我有一个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)
但是你应该使用第一个例子.
你可以这样做:
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)