# no-integer-division-in-float-context

Disallow integer division whose result immediately becomes a float

Converting the result of integer division to a float preserves the already-truncated integer quotient.
Instead, you SHOULD convert both operands to the intended floating-point type before dividing them.

- Category: correctness
- Level: warning
- Fix: suggestion
- Scope: module

## Reported

```ds title="main.ds"
function ratio(left: int32, right: int32): float64 {
    return (left / right) as float64;
}
```

## Accepted

```ds title="main.ds"
function ratio(left: int32, right: int32): float64 {
    return (left as float64) / (right as float64);
}
```

## Prior art

- [Clippy · integer_division](https://rust-lang.github.io/rust-clippy/master/index.html#integer_division)

[language/linter/src/rules/correctness/no_integer_division_in_float_context.rs:8](https://github.com/destack-sh/destack/blob/main/language/linter/src/rules/correctness/no_integer_division_in_float_context.rs#L8)
