【发布时间】:2018-08-30 20:03:52
【问题描述】:
我在我的应用程序中使用NumberFormat 来获取货币格式的字符串。就像用户在字段中输入 12.25 一样,它将根据区域设置更改为 $12.25。这里的语言环境是 en-US。
现在我想将 12.25 值作为格式化字符串的双精度值。
为此,我使用过:
NumberFormat.getCurrencyInstance().parse("$12.25").doubleValue();
上面的行给了我 12.25 的结果,这是我的要求。但是假设用户将他的语言环境更改为其他en-UK。现在对于那个语言环境,上面的语句给了我 parseException。因为对于语言环境 en-UK,货币字符串 $12.25 是不可解析的。
那么有什么方法可以从货币格式的字符串中获取双精度值,而不管语言环境是什么?
【问题讨论】:
-
您可以拆分第一个字符(区域货币符号)。 idk,如果它是你想要的。
-
希望每个用户在您的商店支付相同的价格,具体取决于区域设置。 12.25 欧元超过 12.25 美元 ^^
-
首先我猜你不应该只为一个语言环境硬编码......然后,对于你在源代码中编码的任何语言环境,开关盒可以帮助你做你想做的事......
-
@AntonioI 可以拆分第一个字符。但问题在于
Brazilian Portuguese的货币符号是R$,而comma(,)用作小数分隔符。 -
您想在网页中保留状态吗?这不是一个好主意。
标签: java android number-formatting currency-formatting