Lin*_*inc 0 java math pagination
如果我有2个数据库记录和每页25个记录,那么以下代码:
System.out.println("page count: " + (double)2/25);
Run Code Online (Sandbox Code Playgroud)
结果输出:
page count: 0.08
Run Code Online (Sandbox Code Playgroud)
但是因为我使用这个数字进行分页,我需要下一个最高整数,在这种情况下:1.
双方Math.ceil并Math.abs产生结果0或0.0.
我如何以页码整数结束?
正确的方法是:
int pages = (totalRecords+recordsPerPage-1)/recordPerPage;
Run Code Online (Sandbox Code Playgroud)
在您的情况下:pages =(2 + 25 - 1)/ 25 = 26/25 = 1
Math.ceil不应该给你0的0.08。很明显,你没有发布的代码中有一个错误。
System.out.println(Math.ceil((double)2/25));
Run Code Online (Sandbox Code Playgroud)
1.0就像您期望的那样,以 Java 6u21输出。
猜测,您的其他代码缺少double对其中一个参数的强制转换,并且int / int始终int以 Java返回。
System.out.println(Math.ceil(2/25));
Run Code Online (Sandbox Code Playgroud)
打印0.0。
| 归档时间: |
|
| 查看次数: |
4569 次 |
| 最近记录: |