Question

I have the following code:

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

Which outputs 1.0.

I thought it should output 2.0 because the result of total/perPage is 1.2.

Why is it not rounding upwards to 2.0?

Was it helpful?

Solution

you are casting an the result of integer division to a double.

You need to cast each part of the division to double BEFORE the result.

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

The rest should work

OTHER TIPS

(int)Math.ceil(3/2.0) will give answer 2

(int)Math.ceil(3/2) will give answer 1

In order to get the float value, you need to cast (or add .0) to one of the arguments

double pages = Math.ceil((double)total/perPage);

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top