Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,851 questions

51,772 answers

573 users

How to sort a vector of strings where each string represents a decimal number in Rust

1 Answer

0 votes
fn main() {
    // Input vector of strings
    let mut numbers = vec![
        "12.3", "5.6", "789.1", "3.14", "456.0", "0", "0.01", "4.0",
    ];

    // Sort the vector using the custom comparator
    numbers.sort_by(|a, b| compare_as_decimal(a, b));

    println!("Sorted vector of decimal strings:");
    for num in &numbers {
        print!("{}  ", num);
    }
}

// Comparator function to sort strings as decimal numbers
fn compare_as_decimal(a: &str, b: &str) -> std::cmp::Ordering {
    // Convert strings to float for comparison
    let num_a = a.parse::<f64>().unwrap_or(f64::NAN);
    let num_b = b.parse::<f64>().unwrap_or(f64::NAN);

    num_a.partial_cmp(&num_b).unwrap_or(std::cmp::Ordering::Equal)
}



/*
run:

Sorted vector of decimal strings:
0  0.01  3.14  4.0  5.6  12.3  456.0  789.1 

*/

 



answered Sep 1, 2025 by avibootz
...