¿Cómo multiplicar / dividir / sumar / restar números de diferentes tipos?

Estoy trabajando en la segunda edición del manual de Rust, y decidí probar y hacer el clásico convertidor de Celsius a Fahrenheit:

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

Compilando esto concargo build producirá el error en tiempo de compilación:

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 nuevo programador de Rust, mi interpretación es que no puedo multiplicar tipos flotantes y enteros. Resolví esto haciendo que todas mis constantes fueran puntos flotantes:

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

Esto me deja con reservas. Viniendo de C / C ++ / Java / Python, fue sorprendente saber que no se puede simplemente realizar operaciones aritméticas en números de diferentes tipos. ¿Es lo correcto simplemente convertirlos al mismo tipo, como hice aquí?

Respuestas a la pregunta(1)

Su respuesta a la pregunta