私の経験の中であった、設計時の見落としをテーマとして何点か書いてみます。
とある業務システムの仕様書に中に、明細(帳票)出力の金額項目に「数量 x 単価」を端数処理するとだけ書かれたものがありました。
特に問題ないように思われますが、販売管理系の場合など請求先または支払先ごとに計算方法の指定がある場合がほとんどです。
例えば、下記のように明細毎に端数処理するのか明細集計後に端数処理するのかによって誤差が発生します。
例 端数処理の仕方
明細毎に端数処理するのか、明細集計後に端数処理するのか
明細毎に端数処理
11/ 2 5個 5x20.25 = 101.25 四捨五入 = 101
11/ 3 5個 5x20.25 = 101.25 四捨五入 = 101 計 202
明細集計後に端数処理
11/ 2 5個
11/ 3 5個 (5+5)x20.25 = 202.5 四捨五入 = 203 計 203
このように集計レベルによる端数処理により誤差が出るため、仕様者およびお客様に確認が必要となります。
この手の問題は、消費税計算も同様です。ognacさんも書いておられますが
消費税の悩み http://blogs.wankuma.com/ognac/archive/2007/04/25/73138.aspx
消費税計算の場合は、明細単位、請求単位、請求明細単位、合計請求単位などあります。
但し消費税の方は、常識となっている点では設計としては漏れにくいです。
消費税の明細毎と請求一括毎の単純な確認テスト方法として、下記の2明細を作成
金額 550円 消費税率:5% 端数処理:四捨五入
明細毎
550 x 5% = 27.5 = 28
550 x 5% = 27.5 = 28 計 56円
請求一括
(550 + 550) x 5.5 = 55円
このように、明細毎は56円、請求一括は55円となり、確認OKってな感じです。