使用Java的Math函数为查看分页提供页码的问题

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.ceilMath.abs产生结果00.0.

我如何以页码整数结束?

Mau*_*rry 8

正确的方法是:

int pages = (totalRecords+recordsPerPage-1)/recordPerPage;
Run Code Online (Sandbox Code Playgroud)

在您的情况下:pages =(2 + 25 - 1)/ 25 = 26/25 = 1


Pow*_*ord 5

Math.ceil不应该给你00.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