【发布时间】:2018-02-15 12:29:05
【问题描述】:
如何将浮点值转换为字符串?无论出于何种原因,我能找到的文档和所有在线资源都只与其他方式有关。
let value: f32 = 17.65;
let value_as_str: String = .....
【问题讨论】:
-
我敢打赌这是重复的,但我找不到类似的问题。
-
旁白:在 C 语言中,使用
sprintf(buf, sizeof buf, "%.*e", FLT_DECIMAL_DIG - 1, some_float);将float打印到一个足够多但数字不多的字符串。可能会为您提供一些想法。 -
我实际上不知道 C 的
FLT_DECIMAL,所以谢谢你。 C++ 使用std::to_string更好;我在 rust 中寻找类似的东西。 -
请注意,
std::to_string使用固定(非指数符号),倾向于将较小的float转换为“0.000000”和带有过多数字的非常大的值。我想知道.to_string()是否也这样做? -
我在答案中添加了有关如何使用小数点后固定位数以及如何使用指数符号进行格式化的示例。
标签: rust