为什么Math.ceil不能向上舍入?

时间:2014-06-05 14:09:19

标签: java math ceil

我有以下代码:

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

3 个答案:

答案 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);