Existe-t-il un moyen de convertir un nombre à virgule flottante (f32
ou f64
) en un type de données auquel je peux accéder au niveau du bit, par exemple u32
/u64
? C'est-à-dire quelque chose correspondant à:Comment convertir float en binaire sans utiliser de code dangereux?
fn as_bits(i: f64) -> u64 {
unsafe { mem::transmute(i) }
}
mais sans le unsafe
. Ce code est sûr par rules, même s'il ne peut pas retourner les mêmes valeurs sur toutes les plates-formes, en particulier pour les NaN. L'interface de sécurité inversée serait également agréable.