格式化没有区域设置的数字

时间:2013-04-17 14:24:59

标签: java format decimalformat

用户可以在GUI上指定文件输出格式。特别是他可以定义数字格式。第一个想法是让他指定一个可以与DecimalFormat一起使用的格式,但是DecimalFormat对我的用例至少有两个主要的缺点:

  • 它使用用户的语言环境,因此##。##转换'。'来自德国的','。
  • 逗号之前和逗号之后没有区别,所以你不能格式化12.50到1250.我的用例也需要。

StringFormat也不能这样做。所以我的问题是,如果您知道任何已经处理此问题的库,或者我必须自己编写一个简单的格式化程序。

2 个答案:

答案 0 :(得分:1)

DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
DecimalFormat decimalFormat = new DecimalFormat("##.##");
decimalFormat.setDecimalFormatSymbols(otherSymbols);

答案 1 :(得分:0)

  

它使用用户的语言环境

不是这样。来自Javadoc

“要获取特定语言环境的NumberFormat,包括默认语言环境,请调用NumberFormat的工厂方法之一,例如getInstance()。通常,不要直接调用DecimalFormat构造函数”。