如何将f64截断到小数点后两位?

wei*_*eiz 1 rust

如何截断f64到小数点后两位?

let before = 17.69108280254777;
Run Code Online (Sandbox Code Playgroud)

let after = 17.69;
Run Code Online (Sandbox Code Playgroud)

Yag*_*nci 11

实际上,如果不进行四舍五入,就无法进行四舍五入,但我认为这样的解决方法可以完成工作

fn main() {
    let before = 17.69108280254777;
    let after = f64::trunc(before  * 100.0) / 100.0; // or f32::trunc
}
Run Code Online (Sandbox Code Playgroud)

输出:

17.69
Run Code Online (Sandbox Code Playgroud)

  • 对于两位小数,它应该是 100 而不是 1000。您可以使用 [.floor()](https://doc.rust-lang.org/std/primitive.f64.html#method.floor) 而不是类型转换为了更好的可读性,例如 `let after = (before * 100f64).floor() / 100.0;` (2认同)