お客さんから、複数のCSVファイルを同じようにシステムに登録したが、1ファイルだけある列のデータが他のファイルと異なる結果になったとの連絡がありました。
原因:なぜ1ファイルだけ異なる結果になるのか
登録されたファイルを見てみると、他のファイルでは該当の列は「62107」という形式になっています。
1ファイルだけ該当の列は「062017」という形式になっています。
1文字目の「0」の有無の違いだけですが、システムとしては扱いが違ってきます。
テスト時点でも、1文字目に「0」があるデータが登録されるとはお客さんからは知らされていません。
photo credit: marcoverch Dominoschlange via photopin (license)
対処:数値として扱う
後半4文字と残りの文字に分けて処理するようにシステムはなってます。
どちらも数値として扱える前提ができます。
前提通り、残りの文字が数値として扱えるかチェックを追加しました。
数値として扱えるなら文字から数値に変換して「0」を外して処理するように修正しました。