如何在 Rust 中格式化没有尾随零的浮点数?

  • 本文关键字:浮点数 Rust 格式化 rust
  • 更新时间 :
  • 英文 :


f64格式化是这样的:

format!("{:.8}", x)

这将返回如下字符串:

110.00000000
601.47000000
4.50000000

我希望删除每个末尾的所有额外零,以便输出如下:

110
601.47
4.5

我希望在没有任何外部板条箱或库的情况下做到这一点(如果必须发生,没什么大不了的(。Rust 中内置的东西可以做到这一点吗?还是必须编写自定义函数才能执行此操作?

编辑:

我应该补充一点,我不能简单地做format("{}", x)因为这会返回这样的字符串:

40.019999999999996
1192.6499999999999
2733.9599999999996

有没有办法解决这个问题?

这目前为我解决了问题:

let y = (x * 100_000_000.0).round() / 100_000_000.0;
format!("{}", y);

我会留意任何更好的解决方案。谢谢!

你可以做

format!("{}", x)

{:.8}需要 8 位精度,因此,打印出额外的零以达到该精度。

最新更新