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
*/