MW211 EXIT

devlog
端数処理後の復元
2017年02月08日
消費税8%の税込金額を税抜金額に変換する際、小数点以下の端数誤差が気になる。

ただ、税込金額を計算する時に端数処理をどうしていたかがわかれば
誤差なく復元が可能なようだ。

  (1) 四捨五入で税込金額を計算していた場合 → (除算後に商を)四捨五入すればOK
  (2) 切り上げで税込金額を計算していた場合 → (除算後に商を)切り捨てすればOK
  (3) 切り捨てで税込金額を計算していた場合 → (除算後に商を)切り上げすればOK

元の金額(税抜金額)を×1.08し、整数となるよう四捨五入する。
それ(税込金額)を÷1.08し、整数となるよう四捨五入する。
するとその結果(再計算した税抜金額)が元の金額と必ず一致する。
→Excelで「1~2097152」まで試してみたが全て一致した
  ┌──────────────────────────────────┐
  │7─(×1.08)→7.56─(四捨五入)→8─(÷1.08)→7.40─(四捨五入)→7(=7)│
  └──────────────────────────────────┘
逆のケース(割ってから掛ける)だと、復元できないものがすぐみつかるのにだ。
  ┌──────────────────────────────────┐
  │7─(÷1.08)→6.48─(四捨五入)→6─(×1.08)→6.48─(四捨五入)→6(≠7)│
  └──────────────────────────────────┘

何か数学的法則性があるのだろうか?
分類:【未解決】