How to get the fraction and exponent of a real number in Rust

1 Answer

0 votes
fn frexp(value: f64) -> (f64, i32) {
    if value == 0.0 {
        return (0.0, 0);
    }

    let abs_value = value.abs();
    let exponent = abs_value.log2().floor() as i32 + 1;
    let fraction = value / 2f64.powi(exponent);

    (fraction, exponent)
}

fn main() {
    let d = 3.14;
    let (fraction, exponent) = frexp(d);

    println!("fraction = {:.3} exponent = {}", fraction, exponent);
}

 
 
/*
run:
   
fraction = 0.785 exponent = 2
   
*/
 

 



answered Jun 30, 2025 by avibootz
...