在根据总数计算总页数的时候,发现使用Math.ceil()
计算的页数总数少了一页,看了代码写的也是没问题,去谷歌发现也有人遇到的同样的问题,解决步骤如下
JS代码演示取整
Math.ceil(3726 / 30)
// 125
Java代码演示
public Response test()
{
Integer a = 3736;
Integer b = 30;
return this.renderJson(new JSONObject(){{
put("aa", Math.ceil(a / b));
put("bb", Math.ceil(a / (float) b));
put("cc", a / b);
put("dd", Math.ceil(a / (double) b));
}});
}
结果
{
"status": 0,
"code": 11000000,
"msg": "成功",
"data": {
"aa": 124,
"bb": 125,
"cc": 124,
"dd": 125
}
}
可以看到是由于变量a和b都是整数型,所以当相除的时候还是整数型结果,导致在使用Math.ceil()
取整的时候获取不到对的结果,只需要把a或者b一个改为浮点型数就可以了
佐证
...
System.out.println(new JSONObject(){{
put("aa", Math.ceil(12.222));
put("bb", Math.ceil(12));
put("cc", Math.ceil(12.0));
}});
...
// 结果
{"aa":13.0,"bb":12.0,"cc":12.0}
这个时候你可能也看到了,对的就是结果是13.0
这并不符合我们对数据的处理,我们需要的是 13
,因此还需要进一步的处理(int) 13.0
// 两种方式都可以
put("dd", (int) Math.ceil(12.555));
put("ee", (int) 13.0);
至此解决了我的问题!