# Java: Wrong results for division?

When dividing two integers, Java uses **integer division**. In integer division, the result is also an integer. The result is *truncated* (fractional part thrown away) and not *rounded* to the closest integer.

## To get actual floating point result

Cast the numerator (or denominator) to `double`

:

```
double r = (double) i / j;
```

## To get rounded result

Cast as above, and use `Math.round`

:

```
long r = Math.round((double) i / j);
```

## Comments