本日VBAでとある2つの数値の中央値を取っていて気付いたこと。…もしかしてEXCELのROUND関数と、VBAのROUND関数挙動が違うんじゃないのか?ということ。
というかVBAのROUND関数、もしかして単純な四捨五入じゃないのか?と思ったら気になって夜も眠れなそうだったので(笑)、実際に挙動を調べてみました。
で、以下その結果。ま~EXCELのROUND関数と、VBAのROUND関数の挙動の違いはとりあえず分かったのですが、
そもそも何でこういう動きをしているのかは分からない…。でも小数点以下できちんと四捨五入をさせたい場合は、恐らくEXCELのROUND関数を使った方が信用できるということは理解しましたわ(>_<)。
ケース1:(22+27)/2 = 24.5の場合
EXCELのROUND関数 → 25
VBAのROUND関数 → 24
ケース2:(22+27.1)/2 = 24.55の場合
EXCELのROUND関数 → 25
VBAのROUND関数 → 25
※ROUND関数は小数点以下で四捨五入する形で使用
というかVBAのROUND関数、もしかして単純な四捨五入じゃないのか?と思ったら気になって夜も眠れなそうだったので(笑)、実際に挙動を調べてみました。
で、以下その結果。ま~EXCELのROUND関数と、VBAのROUND関数の挙動の違いはとりあえず分かったのですが、
そもそも何でこういう動きをしているのかは分からない…。でも小数点以下できちんと四捨五入をさせたい場合は、恐らくEXCELのROUND関数を使った方が信用できるということは理解しましたわ(>_<)。
ケース1:(22+27)/2 = 24.5の場合
EXCELのROUND関数 → 25
VBAのROUND関数 → 24
ケース2:(22+27.1)/2 = 24.55の場合
EXCELのROUND関数 → 25
VBAのROUND関数 → 25
※ROUND関数は小数点以下で四捨五入する形で使用