小数の合計で誤差を出さない

金額の列が 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 行です。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 統合は元に戻せません。必ず元の CSV を残したうえで、出力と食い違いの警告を確認して使ってください。
  • 大きなファイルはお使いの端末の性能によって処理に時間がかかることがあります。

ほかの入力例