我已经经历了这么看着,但还没有找到一个答案,与我相似的问题。格式化字符串匹配模式
我需要的格式货币取决于语言环境。
例子:
我有量11349
和我的语言环境是某处在美国。我从我们的CMS拉格式如下:$#,##0.00
我需要使用模板来获取量“11349”,看起来像这样:$11,349.00
没有人有任何想法如何处理呢?如果已经有关于SO的问题解决这个问题,我表示歉意 - 我没有找到它,如果您能指出我的位置,我将不胜感激。
我已经经历了这么看着,但还没有找到一个答案,与我相似的问题。格式化字符串匹配模式
我需要的格式货币取决于语言环境。
例子:
我有量11349
和我的语言环境是某处在美国。我从我们的CMS拉格式如下:$#,##0.00
我需要使用模板来获取量“11349”,看起来像这样:$11,349.00
没有人有任何想法如何处理呢?如果已经有关于SO的问题解决这个问题,我表示歉意 - 我没有找到它,如果您能指出我的位置,我将不胜感激。
NumberFormat支持Locales
并产生格式化按您的问题加上使用正则表达式避免:
Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(11349));
使用的语言环境( “恩”, “US”)
Locale locale = new Locale("en", "US");
NumberFormat nf = NumberFormat.getCurrencyInstance(locale); //getting currency
System.out.println(nf.format("11349")); //cast string to numberFormat
然后你会得到输出为
$11,349.00
你为什么要在一个BigDecimal包装呢? – Lebowski156
如果您的语言环境是美国,那么这应该产生要求d结果
String s = new DecimalFormat("$#,##0.00").format(11348);
谢谢!它将如何处理浮动? 如果我通过了吧'883.0',例如? – Skytiger
$ 883.00此模式定义数字在小数点后总是有2位数字。 –
我会将此标记为接受的答案。然而 - 我忘了我的问题提这个 - 你当你使用'的格式并不总是那些NumberFormat.getCurrencyInstance(区域)' 对于我的具体问题,[叶夫根尼·Dorofeev的(HTTP://计算器.com/a/18274215/1073118)答案很可能最有效。 谢谢你,不过,这个答案是干净的,可读的:) – Skytiger