将float转换为包含所有数字的字符串

时间:2018-08-05 20:02:01

标签: floating-point rust

在Rust中,我可以使用println!.to_string()将浮点数转换为字符串,但它只会打印出必要的数字以使其无损。如何获取浮点数的所有数字?例如,0.1f32应该转换为"0.100000001490116119384765625"

1 个答案:

答案 0 :(得分:0)

这似乎可以解决问题:

format!("{:.51}", i).trim_right_matches(|c| c == '0' || c == '.').to_string();

有点麻烦,因为您需要提前指定所需的最大位数,而我不确定100%是否为51(对于f32-{{1 }}。

f64返回一个trim_right_matches(),然后&str从中生成一个新的to_string(),这是次优的。您只需String返回由truncate()返回的String,就可以做得更好。