How to round a decimal to 2 decimal places in Rust

3 Answers

0 votes
fn main() {
    let number1 = 2.431;
    let rounded1 = format!("{:.2}", number1);
    println!("{}", rounded1); 
 
    let number2 = 2.487;
    let rounded2 = format!("{:.2}", number2);
    println!("{}", rounded2); 
}
 
  
  
/*
run:
  
2.43
2.49
 
*/

 



answered May 15, 2025 by avibootz
0 votes
fn main() {
    let number: f64 = 2.431; // Explicitly define the type as f64
    let rounded = (number * 100.0).round() / 100.0;
    println!("{}", rounded);

    let number: f64 = 2.487; // Explicitly define again
    let rounded = (number * 100.0).round() / 100.0;
    println!("{}", rounded);
}



 
/*
run:
 
2.43
2.49

*/

 



answered May 15, 2025 by avibootz
0 votes
fn round_ties_even(value: f64, places: i32) -> f64 {
    let multiplier = 10f64.powi(places);
    let scaled = value * multiplier;
    let rounded = if scaled.fract() == 0.5 {
        // Tie-breaking logic: Round to even
        (scaled / 2.0).round() * 2.0
    } else {
        scaled.round()
    };
    
    rounded / multiplier
}

fn main() {
    let number1 = 2.431;
    let rounded1 = round_ties_even(number1, 2);
    println!("{}", rounded1);

    let number2 = 2.487;
    let rounded2 = round_ties_even(number2, 2);
    println!("{}", rounded2);
}

  
  
/*
run:
  
2.43
2.49
 
*/

 



answered May 15, 2025 by avibootz

Related questions

1 answer 64 views
1 answer 64 views
1 answer 68 views
1 answer 159 views
2 answers 124 views
1 answer 191 views
1 answer 86 views
...