小数の合計で誤差を出さない
金額の列が 0.1 と 0.2 の小数で、合計が 0.30000000000000004 のような誤差になりやすい境界の例です。桁をそろえた足し算で 0.3 になることを確かめます。
入力
CSV(1 行目は見出し)
id,amt 1,0.1 1,0.2
キー列の位置(左から何列目か)
1
統合の方法
数値の列は合計し、ほかは空欄を補う
キーの前後の空白を無視して比べる
いいえ
区切り文字
カンマ(,)
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| キー列 | id |
|---|---|
| 元のデータ行 | 2 行 |
| 統合後のデータ行 | 1 行 |
| 減った行 | 1 行 |
統合した CSV
id,amt 1,0.3
検算(この結果になる理由)
小数 1 桁にそろえると 1 と 2 の整数の足し算で 3 となり、1 桁戻して 0.3 です。浮動小数点で足したときの誤差は出ません。amt は全部数字なので警告もなく、出力は 1,0.3 の 1 行です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- キーの比較は文字列としての完全一致です(前後の空白を無視する設定を除く)。全角と半角、大文字と小文字は別のキーです。
- 合計は整数と小数だけを対象にします。通貨記号・桁区切りのカンマ・単位つきの値が混ざる列は合計せず、空欄を補うだけです。
- 値の意味の判定はしません。食い違った値のどれが正しいかは、警告を見て元のデータで確認してください。
- ファイルは UTF-8 として読みます。Shift_JIS の CSV は文字化けするため、UTF-8 で保存し直してから使います。
ご利用にあたって
- 統合は元に戻せません。必ず元の CSV を残したうえで、出力と食い違いの警告を確認して使ってください。
- 大きなファイルはお使いの端末の性能によって処理に時間がかかることがあります。