2

我们正在尝试读取包含以下格式的数字的文件:(123.456,78根据维基百科,这在某些国家/地区很常见 - 例如德国)。

Super CSV 配置为将列解析为 BigDecimal: new ParseBigDecimal(new DecimalFormatSymbols(GERMANY))

这适用于 1k 以下的数字,但分组分隔符处理不当:'1.999,00' could not be parsed as a BigDecimal.

我已经看到可以编写自定义单元处理器,但也许有人知道是否有更简单的方法,或者这是否是 Super CSV 中的一个已知错误。

更新:

Super CSV 集成了该功能并发布了 2.2.0 版本。它适用于通过DecimalFormatSymbols参数提供的所有分组分隔符。

4

1 回答 1

2

ParseBigDecimal(2.2.0 之前的版本)仅使用提供的小数分隔符DecimalFormatSymbols(不是分组分隔符)。这不是错误,只是当前实现的限制。

您可以在 aStrReplace之前链接ParseBigDecimal(即替换"."""),这应该可以解决您的问题(快速)。

我认为这ParseBigDecimal实际上应该为您做到这一点。更新:从 2.2.0 版本开始也是如此

就像你说的,你也可以随时编写自己的单元处理器:)

于 2014-04-23T07:21:30.130 回答