今天项目中一个分页小需求,已经能够知道数据总条数total,和每页的数据条数size,计算总页数的情况:
一开始是这样子算的:total /size +1,但是这种情况下如果total = 8 size = 8 的情况就是2页了,这是不对的。
然后开始尝试这样子的:Math.ceil(total / size) 但是这种结果也是不对的。
凑整:Math.ceil(2)=2
凑整:Math.ceil(2.1)=3
凑整:Math.ceil(2.5)=3
凑整:Math.ceil(2.9)=3
看上面数据是对的,其实我们这里是一个除法表达式,不是单独一个数字,所以计算结果是不对的:
如Math.ceil(157/32) = 4.90625,我们希望取到的是5,实际得到的结果是4。
最后我去参考了一下spring data 的写法,如下,
@Override
public int getTotalPages() {
return getSize() == 0 ? 1 : (int) Math.ceil((double) total / (double) getSize());
}