我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 位精度,因此,打印出额外的零以达到该精度。