在Rust中,我可以使用println!
或.to_string()
将浮点数转换为字符串,但它只会打印出必要的数字以使其无损。如何获取浮点数的所有数字?例如,0.1f32
应该转换为"0.100000001490116119384765625"
。
答案 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
,就可以做得更好。