【发布时间】:2017-12-18 03:28:05
【问题描述】:
我很困惑如何将“浮点字符串”解析为浮点数,基于知道 i18n 语言环境但不对字符串做出假设。
示例:像我一样,德国人写“1.234,87”,而美国人写“1,234.87”。在我的项目中,我确实知道我期望的语言环境,但我不想“硬编码”我对本地如何编写这些东西的假设。
我不想做正则表达式/字符串替换。
有没有一种通用的说法,比如
myFloat := ParseFloatByLocale("1.234,76", "DE-DE")
// myFloat => 1234.76
strconv似乎没有这个功能,x/text/language也没有
感谢任何提示!
【问题讨论】:
-
也许你可以以某种方式使用它,github.com/leekchan/accounting。我在所有项目中都使用它。
-
感谢@prematch,但似乎会计工作浮动->字符串,我正在寻找字符串->浮动
-
我想说最好只使用golang.org/pkg/strconv ...
f, err := strconv.ParseFloat("3.1415", 64)。您可能需要规范化您的字符串并将它们传递给...如果您想围绕 strconv 创建一个实现函数ParseFloatByLocale的包 -
这个问题很容易概括为解析本地化百分比值和日期/时间格式。
标签: string parsing go type-conversion