在使用下面的数字格式:

    NumberFormat amountFormat = NumberFormat
        .getNumberInstance(I18N.getThreadLocale());
    amountFormat.setMaximumFractionDigits(2);
    amountFormat.setMinimumFractionDigits(2);

我得到以下结果时,通过分析

    System.out.println(amountFormat.parse(value));
  • 10,50 => 1050
  • 10,5 => 105
  • 0,25 => 25

我知道,在区域设置。英文","是该组的分离器。但我不认为上面的结果有意义。和我们的客户得到奇怪的关于这个格式。

我怎么可以禁止这一组?

我想有结果如下:

  • 10,50=>如果
  • 10,5=>如果
  • 的0,25=>如果

是否有一个标准的方式做到这一点?或者我有节目我自己的数字格式?

有帮助吗?

解决方案

一个问题是该分组的角色(','英语locale).禁用分组支持为数字格式的实例,则可以简单地援引setGroupingUsed(false)。

然而,这导致一个不同的问题,即数字格式分析从字符串的开始,直到达到一个未知的角色。parse("12foo")将返回12,只是作为分析("10,50")将返回10如果分组是残疾人。如果要检查整个输入串实际上是解析的,你必须使用的分析方法与ParsePosition的论点,并检查它的索引,如果输入串行解析,以结束或者如果分析程序停止在早先的位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top