如何在 Rust 中将浮点数四舍五入到指定小数位数?
大家好!我是 Rust 新手,在处理浮点数时遇到了问题。我需要将 f64 值四舍五入到特定的小数位数,例如,为了显示美元价格,需要保留两位小数。
在 Python 中,我习惯使用 `round(3.14159, 2)` 得到 3.14。在 JavaScript 中有 `toFixed(2)`。但在 Rust 的标准库中,我没有找到类似的功能。我尝试写了这样的代码:
```rust
fn main() {
let price = 19.995;
let rounded_price = price.round(); // 这只会四舍五入到整数
println!("{}", rounded_price); // 输出 20
}
```
但 `round()` 只四舍五入到整数。我需要四舍五入到两位小数:`19.995 → 20.00` 或 `3.14159 → 3.14`。我尝试乘以 100、四舍五入再除以 100,但由于浮点数的精度误差,得到了奇怪的结果:
```rust
fn main() {
let price = 19.995;
let rounded = (price * 100.0).round() / 100.0;
println!("{:.2}", rounded); // 输出