我有一个值存储在一个数据库相关的货币数量,10.0说。我也有访问/ CurrencyCode货币。我怎么能使用NumberFormat / DecimalFormat /(?)格式在我不知道的地方?根据文档,它将选择一个默认语言环境,不会使用外国货币。
Java:货币区域映射可能吗?
原标题:
最佳回答
正确的行为,一般来说,是格式在用户首选区域设置,不是货币年代典型的地区。在客户端,你会有用户偏好(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 " > < / >创建你自己的表的很多情况下都是明确的。
我想说如果你的数据库是存储货币价值应该是挂在单位在同一时间。这听起来像你现在这样做。你可以向数据库添加区域设置在同一时间吗?可能是一个不错的解决方案。
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding