The function in java Math.ceil () should round the number up when dividing, i.e. to the right

So when dividing 12/5 = 2.4, then Math.ceil (12/5) = 3;

but:

```
public static void main (String [] args) {
System.out.println (Math.ceil (12/5));
}
```

Outputs me 2.0, Math.floor (12/5) also outputs 2.0. Maybe I don’t understand correctly how they work?

## Answer 1, authority 100%

For convenience of any rounding, it is best to use the `BigDecimal `

class:

```
new BigDecimal (12.0 / 5) .setScale (0, RoundingMode.CEILING) .doubleValue ();
```

The first parameter indicates to what sign the rounding is, and the second indicates the rounding rule.

## Answer 2, authority 90%

The fact is that `12/5 `

is itself an integer division, the result is already `2 `

.

`Math.ceil (12.0 / 5) == 3.0 `

## Answer 3

The problem is that in java there are no special operators like `div `

or `mod `

like in Pascal. Therefore, the / sign works like an integer division of 12/5 and is really 2 (and a remainder of 2). That is why, if we want to get a fraction, we need to customize the integer divisor and the dividend to float. And you can do it as you like. At least `12f / 5f `

, at least `(float) a / (float) b `

. And only after that you can round-up, etc.