久しぶりにExcelの丸め誤差に苦しみました。
バージョンはExcel 365 バージョン 2206 32bitです(客先が32bitなもので)
ちょっとややこしい計算式を設定するVBAを開発したのですが、
ユーザーからエラーメッセージが表示されると連絡があり、
対象のExcelファイルを参照すると、とあるセルに"-2E-15"というありえない数値が。
"数式の検証"機能で1ステップづつ計算していくと・・・
初期状態。"数式の検証"が無かったら計算式のセルを小分けしているところです。
途中を省略。ROUNDDOWNで15の少数部を切り捨てて15です。
15-15=0ですよね・・・
!?
といった感じでした。
"ROUNDDOWN"を"INT"に変更したら想定通りに動作。
"ROUNDDOWN"は桁数0で切り捨てても内部では浮動小数扱いなんですね。
"INT"はしっかり内部も整数で扱うみたいです。