【发布时间】:2014-06-05 14:09:19
【问题描述】:
我有以下代码:
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?
【问题讨论】:
-
您正在执行整数除法而不是浮点除法。
-
int ceilPages = (total + perPage - 1) / perPage;更整洁。 -
您是否尝试打印
pages以查看您传递给Math.ceil()的值?那会立即告诉您问题不在于Math.ceil()。 -
(int)Math.ceil(3/2.0) 将给出答案 2 (int)Math.ceil(3/2) 将给出答案 1 为了获得浮点值,您需要强制转换(或添加 .0)到参数之一