8

我有以下代码:

int total = 6;
int perPage = 5;
double pages = total/perPage;
double ceilPages = Math.ceil(pages);
out.println(ceilPages);

哪个输出1.0

我认为它应该输出2.0,因为total/perPageis的结果1.2

为什么它不向上舍入到2.0

4

3 回答 3

23

您正在将整数除法的结果转换为双精度。

您需要在结果之前将除法的每个部分都加倍。

double pages = (double)total/(double)perPage;

其余的应该工作

于 2014-06-05T14:11:09.260 回答
3

(int)Math.ceil(3/2.0)将给出答案 2

(int)Math.ceil(3/2)会给出答案 1

为了获得浮点值,您需要将(或添加 .0)转换为参数之一

于 2018-03-08T16:32:44.737 回答
0

双页= Math.ceil((双)总计/每页);

于 2017-11-24T06:34:51.893 回答