Como multiplicar / dividir / adicionar / subtrair números de tipos diferentes?

Estou trabalhando na segunda edição do manual Rust e decidi tentar fazer o clássico conversor de Celsius para Fahrenheit:

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

Compilando isso comcargo build produzirá o erro em tempo de compilação:

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}`

Como um novo programador do Rust, minha interpretação é que não posso multiplicar tipos float e inteiros juntos. Resolvi isso criando todas as minhas constantes pontos flutuantes:

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

Isso me deixa com reservas. Vindo de C / C ++ / Java / Python, foi surpreendente saber que você não pode simplesmente executar aritmética em números de tipos diferentes. A coisa certa é simplesmente convertê-los para o mesmo tipo, como fiz aqui?

questionAnswers(1)

yourAnswerToTheQuestion