如何在BlackBerry上使用Formatter格式化双倍货币?

时间:2010-05-10 16:01:45

标签: java blackberry formatting currency

我需要在我的应用程序中显示货币值。使用RIM API似乎没有一种简单的方法可以做到这一点,所以我不得不创建自己的解决方案(不幸的是,黑莓开发常见的副词)

目前我正在使用Formatter类,javax.microedition.locale就像这样

protected String formatResult(double result)
{
  try {
     Locale l = Locale.getDefaultForSystem();
     Formatter formatter = new Formatter(l.toString());
     return formatter.formatCurrency(result);
  } catch (UnsupportedLocaleException e)
  {
     return "This fails for the default locale because BlackBerry sucks";
  }      
}

始终点击模拟器中的catch块。由于这在模拟器上默认不起作用,我对将它放在应用程序中犹豫不决。

有谁能告诉我上述解决方案是否可行?当然,如何解决它。

2 个答案:

答案 0 :(得分:2)

来自Blackberry.com的javax.microedition.global.Formatter javadoc

  

此Formatter类的实现此时仅支持与区域设置无关的格式。

此外,BB支持论坛的开发人员在this topic中提到了以下内容:

  

Currnetly Formatter类只支持“en”local。

所以,我觉得你很丢失。

答案 1 :(得分:1)

BalusC是正确的,目前唯一支持的语言环境是“en”。您的示例应略微调整(至少对于“en”语言环境;)):

protected String formatResult(double result)
{
  try {
     Formatter formatter = new Formatter("en");
     return formatter.formatCurrency(result);
  } catch (UnsupportedLocaleException e)
  {
     return "This fails for the default locale because BlackBerry sucks";
  }      
}

API documentation声明:“结果使用特定于语言环境的小数分隔符,可能包括分组分隔符。”在实践中,我不包括分组分隔符(我没有得到任何美元金额的逗号> = 1000)。