Конкретный пример пожалуйста

отаю над вторым изданием справочника по Rust и решил попробовать сделать классический конвертер Цельсия в Фаренгейт:

fn c_to_f(c: f32) -> f32 {
    return ( c * ( 9/5 ) ) + 32;
}

Компилируя это сcargo build выдаст ошибку времени компиляции:

error[E0277]: the trait bound `f32: std::ops::Mul<{integer}>` is not satisfied
 --> src/main.rs:2:12
  |
2 |     return (c * (9 / 5)) + 32;
  |            ^^^^^^^^^^^^^ the trait `std::ops::Mul<{integer}>` is not implemented for `f32`
  |
  = note: no implementation for `f32 * {integer}`

Как новый программист Rust, моя интерпретация заключается в том, что я не могу умножать типы с плавающей точкой и целочисленные. Я решил это, сделав все мои константы с плавающей точкой:

fn c_to_f(c: f32) -> f32 {
    return ( c * ( 9.0/5.0 ) ) + 32.0;
}

Это оставляет меня с оговорками. Исходя из C / C ++ / Java / Python, было удивительно узнать, что вы не можете просто выполнять арифметику для чисел разных типов. Правильно ли просто конвертировать их в тот же тип, как я сделал здесь?

Ответы на вопрос(1)

Ваш ответ на вопрос