Rust 如何将f64截断为小数点后2位?

Rust 如何将f64截断为小数点后2位?,rust,Rust,如何将f64截断为小数点后两位 从 到 如果没有舍入,你实际上无法得到舍入,但我认为这样的解决方法可以完成工作 fn main() { let before = 17.69108280254777; let after = f64::trunc(before * 100.0) / 100.0; // or f32::trunc } 产出: 17.69 我想他不是在找{.2}或者他是。@YagizcanDegirmenci,对。我想我想要的结果会更容易理解,所以你只需要pri

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


如果没有舍入,你实际上无法得到舍入,但我认为这样的解决方法可以完成工作

fn main() {
    let before = 17.69108280254777;
    let after = f64::trunc(before  * 100.0) / 100.0; // or f32::trunc
}
产出:

17.69

我想他不是在找{.2}或者他是。@YagizcanDegirmenci,对。我想我想要的结果会更容易理解,所以你只需要
println!(“{.2}”,在前面);//打印17.69
?@weiz您在这里演示的是舍入,问题是您是否也希望
17.697
打印为
17.69
(截断),还是希望
17.70
(舍入)。格式化系统使用后者,如果你需要前者,你必须先截断,然后再格式化。@Masklin非常感谢你的解释,我认为它是截断的一个。两个小数位应该是100而不是1000。您可以使用而不是类型转换来提高可读性,例如
let after=(before*100f64).floor()/100.0不用担心。我也犯了一个错误。因为它不应该是处理负数的floor()。
fn main() {
    let before = 17.69108280254777;
    let after = f64::trunc(before  * 100.0) / 100.0; // or f32::trunc
}
17.69