2

次の形式の数値を含むファイルを読み込もうとしています: 123.456,78( Wikipedia によると、これはいくつかの国では一般的です - 例: ドイツ)。

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

ParseBigDecimalDecimalFormatSymbols(2.2.0 より前) は、提供された(グループ区切り記号ではなく) 小数点記号のみを使用します。これはバグではなく、現在の実装の単なる制限です。

StrReplaceの前にa をチェーンすることができますParseBigDecimal(つまり、 に置き換えます)。これにより、問題が (迅速".""") 解決されます。

私はそれParseBigDecimalが実際にあなたのためにこれを行うべきだと思います。更新: バージョン 2.2.0 以降も同様です。

あなたが言ったように、いつでも独自のセルプロセッサを作成することもできます:)

于 2014-04-23T07:21:30.130 に答える