How to generate random floating point numbers in Rust

1 Answer

0 votes
use std::time::{SystemTime, UNIX_EPOCH};
use rand::{Rng, SeedableRng};
use rand::rngs::StdRng;

fn generate_random_numbers(n: usize, lower: f64, upper: f64) -> Vec<f64> {
    let seed = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .expect("Time went backwards")
        .as_nanos() as u64;
        
    let mut rng = StdRng::seed_from_u64(seed);
    
    (0..n)
        .map(|_| rng.random_range(lower..upper))
        .collect()
}

fn main() {
    let n = 10;
    let lower = 0.0;
    let upper = 3.0;

    let random_numbers = generate_random_numbers(n, lower, upper);

    for num in random_numbers {
        print!("{:.6} ", num);
    }
}



/*
run:

2.640216 1.532295 0.111424 1.906557 0.777789 1.524510 0.889321 0.778866 2.217837 1.381005 

*/

 



answered Nov 3, 2025 by avibootz
...