【发布时间】:2019-12-30 00:52:53
【问题描述】:
我正在尝试使用 parse() 函数解析字符串,该函数本质上是 f32 的用户输入。可以输入带有逗号作为小数分隔符的浮点数 - 如何将其解析为 f32?
到目前为止,只要输入格式为“30”或“30.1”,将字符串解析为浮点数就可以正常工作 - 只要输入为“30,1”,我就会在 Result::unwrap( )。 有没有办法让解析接受“,”作为小数分隔符?
这是我目前使用的代码:
input.trim().parse().unwrap();
我希望解析采用“30”和“30,1” - 最好遵守本地十进制约定
【问题讨论】:
-
1000 上的逗号有哪些规则?
-
因为如果您只期望 单个 逗号或句号,您可以使用 stackoverflow.com/a/34606128/5986907 查找逗号并将其替换为句号,然后解析为 float
-
@SOFe 他很可能不在乎,因为他的语言环境不使用
.作为小数分隔符。 -
@Luckystrik3 标准库在设计上不支持区域设置。你应该选择一个本地化包。
-
复制字符串并将
,替换为.。照常进行。
标签: string rust floating-point type-conversion