Java:货币到区域设置映射可能吗?


问题内容

我在数据库中存储了一个与货币金额相关的值,例如10.0。我还可以访问Currency /
CurrencyCode。当我不知道语言环境时,如何使用NumberFormat / DecimalFormat
/(other?)进行格式化?根据文档,它将选择一个默认语言环境,该语言环境不适用于外币。


问题答案:

通常,正确的行为是按照用户的首选语言环境而不是货币的典型语言环境格式化金额。在客户端,您将具有用户的首选项(Locale.getDefault());。如果您在Web服务器端执行某项操作,请使用Accept-
Language或页面内容的语言环境来获取正确的语言环境。

原因是这样的:英美用户将了解10,000,000.15欧元,但不适合德国的等价金额,10.000.000,15欧元

货币本身没有足够的信息来推断合适的语言环境。