我有以下代码:
int total = 6;
int perPage = 5;
double pages = total/perPage;
double ceilPages = Math.ceil(pages);
out.println(ceilPages);
哪个输出1.0
。
我认为它应该输出2.0
,因为total/perPage
的结果是1.2
。
为什么不向上舍入到2.0
?
答案 0 :(得分:14)
您正在将整数除法的结果转换为double。
你需要在结果之前将分区的每个部分都加倍。
double pages = (double)total/(double)perPage;
剩下的应该有效
答案 1 :(得分:1)
(int)Math.ceil(3/2.0)
会给出答案2
(int)Math.ceil(3/2)
会给出答案1
为了获得浮点值,您需要将(或添加.0)转换为其中一个参数
答案 2 :(得分:0)
double pages = Math.ceil((double)total / perPage);