English 中文(简体)
Java:货币区域映射可能吗?
原标题:
  • 时间:2009-04-16 22:16:03
  •  标签:

我有一个值存储在一个数据库相关的货币数量,10.0说。我也有访问/ CurrencyCode货币。我怎么能使用NumberFormat / DecimalFormat /(?)格式在我不知道的地方?根据文档,它将选择一个默认语言环境,不会使用外国货币。

最佳回答

正确的行为,一般来说,是格式在用户首选区域设置,不是货币年代典型的地区。在客户端,你会有用户偏好(Locale.getDefault ());如果你是在网上做一些服务器端,使用接收语言,或者最好,页面内容年代地区获得适当的语言环境。

The reasoning is this: An English-US user will understand € 10,000,000.15 but not the suitable-for-Germany equivalent, € 10.000.000,15

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

问题回答

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);

欧元如果货币代码是什么?虽然采取了打击,美元仍然是世界各地使用。推断的区域货币代码似乎不可靠。你能介绍一个显式的用户偏好语言环境呢?

你正在寻找的信息不是内置Java货币数据库的一部分,因此没有一个API。你可以< a href = " http://en.wikipedia.org/wiki/ISO_4217 " rel = " nofollow noreferrer " > < / >创建你自己的表的很多情况下都是明确的。

我想说如果你的数据库是存储货币价值应该是挂在单位在同一时间。这听起来像你现在这样做。你可以向数据库添加区域设置在同一时间吗?可能是一个不错的解决方案。





相关问题
热门标签