Avatar ·

Cómo redondear un número de punto flotante a una cantidad específica de decimales en Rust

¡Hola a todos! Soy nuevo en Rust y me encontré con un problema al trabajar con números de punto flotante. Necesito redondear un valor f64 a una cantidad específica de decimales, por ejemplo, a 2 decimales para mostrar un precio en dólares. En Python solía usar `round(3.14159, 2)` y obtenía 3.14. En JavaScript está `toFixed(2)`. Pero en Rust no encontré nada similar en la biblioteca estándar. Intenté escribir este código: ```rust fn main() { let price = 19.995; let rounded_price = price.round(); // Esto redondea al entero println!("{}", rounded_price); // Muestra 20 } ``` Pero `round()` solo redondea al número entero. Necesito redondear a dos decimales: `19.995 → 20.00` o `3.14159 → 3.14`. Probé multiplicar por 100, redondear y dividir de vuelta, pero obtuve resultados extraños debido a imprecisiones de los números de punto flotante: ```rust fn main() { let price = 19.995; let rounded = (price * 100.0).round() / 100.0; println!("{:.2}", rounded); // Muestra 19.99 en lugar de 20.00 } ```