我们正在尝试按以下格式阅读包含数字的文件:123.456,78
(according to Wikipedia this is usual for some countries - e.g. Germany)。
Super CSV配置为将列解析为BigDecimal:new ParseBigDecimal(new DecimalFormatSymbols(GERMANY))
。
适用于1k以下的数字,但分组分隔符处理不当:'1.999,00' could not be parsed as a BigDecimal
。
我已经看到可以写一个custom cell processor,但也许有人知道是否有更简单的方法,或者这是否是Super CSV中的已知错误。
更新
Super CSV已集成该功能,并将其与2.2.0版一起发布。它适用于通过DecimalFormatSymbols
参数提供的所有分组分隔符。
答案 0 :(得分:2)
ParseBigDecimal
(2.2.0之前)仅使用提供的DecimalFormatSymbols
(不是分组分隔符)中的小数分隔符。它不是一个错误,只是当前实现的限制。
您可以在StrReplace
之前链接ParseBigDecimal
(即将"."
替换为""
),这样可以解决您的问题(快速)。
我认为ParseBigDecimal
实际上应该为你做这件事。 更新:自版本2.2.0以来也是如此 。
就像你说的那样,你也可以自己编写自己的细胞处理器:)