Tablora

Tablora · ライブラリ

0.10と0.20を正確な小数で検算する

0.10と0.20の合計が10進数の計算でちょうど0.30になるか確かめます。浮動小数点の表示誤差なしで記載の合計と比べられます。

0.1と0.2の和がおかしく見える理由

多くのソフトは数値を2進数の浮動小数点で保存しますが、0.1と0.2はこの形式では正確に表せません。足すと保存される結果は0.3よりわずかに大きくなり、書式によっては0.30000000000000004と表示されたり、値が等しくないと判定されたりします。照合作業では、こうした誤差が実際には存在しない食い違いに見えてしまいます。

小数の合計照合ツールはこれを避けます。各値を10進数の文字列として読み、すべての値の小数点以下の桁数をそろえてから整数として足すので、0.10と0.20の合計はちょうど0.30になります。

行を入力する

0.10と0.20の結果

値が0.10と0.20、「照合する合計」が0.30の場合、「計算した合計」は0.30、「差」は0.00で、「合計が一致」は「はい」になります。結果が小数点以下2桁なのは、入力値と照合する合計の中で最も多い桁数が2桁だからです。

「差」は常に「計算した合計」から「照合する合計」を引いた値です。差が負なら、入力した行の合計が記載された数字に届いていないことを意味します。

実際の表から値を準備する

明細からコピーした金額が正規の形になっていることはまれです。まず数値列の統一ツールに列を通し、書類で使われている小数点と桁区切りの記号を選んでから、変換した値を照合ツールにコピーしてください。統一ツールが確認待ちにした値は、まだ合計に使える状態ではありません。合計を信頼する前に解決してください。

照合ツールが行うのは、入力された値の正確な計算だけです。通貨の換算、税や端数処理の規則の適用、すべてのレコードが入力されたかの判断は行いません。

照合ツールが受け付けない入力

入力値

1行に1つの値
0.10 0.20
照合する合計
0.30

結果

計算した合計
0.30
差
0.00
合計が一致
はい