首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java:货币到区域的映射是可能的吗?

Java:货币到区域的映射是可能的吗?
EN

Stack Overflow用户
提问于 2009-04-16 22:16:03
回答 4查看 13K关注 0票数 22

我在DB中存储了一个与货币金额相关的值,比如10.0。我还可以访问货币/货币代码。如何使用NumberFormat/DecimalFormat/(其他?)在我不知道区域设置的情况下格式化?根据文档,它将选择一个不适用于外币的默认语言环境。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-04-16 23:01:47

一般来说,正确的行为是将金额格式化为用户的首选区域设置,而不是货币的典型区域设置。在客户端,您将拥有用户的首选项(Locale.getDefault());如果您在web服务器端执行某些操作,请使用Accept-Language,或者最好使用页面内容的区域设置来获得适当的a区域设置。

原因是这样的:英语-美国用户将理解EURO10,000,000.15,但不是适用于德国的等价物EURE10.000.000,15

无论如何,货币本身并不包含足够的信息来推断一个合适的地区。

票数 19
EN

Stack Overflow用户

发布于 2011-05-20 06:29:45

JasonTrue是正确的,但您可以覆盖NumberFormat的区域设置的货币:

NumberFormat numberFormat = NumberFormat.getCurrencyInstance(locale);
//the user may have selected a different currency than the default for their locale
Currency currency = Currency.getInstance("GBP");
numberFormat.setCurrency(currency);
numberFormat.format(amount);
票数 29
EN

Stack Overflow用户

发布于 2009-04-16 22:26:02

如果货币代码是欧元,该如何处理?虽然美元遭受了打击,但世界各地仍在使用美元。从货币代码推断地区似乎并不可靠。你能为语言环境引入一个明确的用户首选项吗?

您要查找的信息不是内置Java货币数据库的一部分,因此没有针对它的API。对于许多明确的情况,您可以使用create your own table

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/758255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档