邪魔な広告が表示されないお子様にも安心の検索エンジン→Filtering Searchを使ってみよう

【ExcelVBA】Round関数は銀行丸めなので注意が必要です。

Excel VBAで、四捨五入をしようと思い、Round関数を使ったところ、

Round(12.5, 0)の値が「12」になりました。

「12.5」を四捨五入すると「13」ですよね?

ということで調べてみました。

Excel VBAのRound関数は、「銀行丸め」

Excel VBAのRound関数は、「銀行丸め」と呼ばれる特殊な四捨五入をします。

四捨五入する対象の数字が「5」の場合は、切り捨てと切り上げのうち結果が偶数となる方へ丸めます。

そのため「12.5」の四捨五入対象の小数点第一位が「5」であったため、偶数となる「12」へ丸められたのです。

 

Excel VBAで通常の四捨五入は?

通常の四捨五入をしたいという場合は、Worksheetfunction.Round関数を使いましょう。

Excel式のRound関数は、Worksheetfunction.Round関数と同じく「銀行丸め」ではありません。
通常の四捨五入です。

「銀行丸め」はごく一部の限られた方が使うようです。
税務署務めの方に聞いたら初めて聞いたと言われました。

知らずにExcel VBAのRound関数を使ってしまうと値が間違ってしまうので注意が必要です。