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
}
```
No answers yet.
Inicia sesión para dejar una respuesta