· 

偶数丸めとは?

既存システムのリプレイスをするにあたって、設計書に「偶数丸めをする」と記載がありました。

偶数丸めについて「端数が5の場合は偶数のほうに丸める」と説明されることが多いですが、
四捨五入と何が違うのでしょうか。

まず、四捨五入の場合、対象の桁が「4」であれば切り捨てて、「5」であれば切り上げます。
例えば小数第一位を四捨五入する場合、以下の様になります。

 

 1.1→ 1

 1.2→ 1

 1.3→ 1

 1.4→ 1

 1.5→ 2

 1.6→ 2

 1.7→ 2

 1.8→ 2

 1.9→ 2

 

そして、四捨五入する前と後を計算すると、

 四捨五入前:1.1+1.2+1.3+1.4+1.5+1.6+1.7+1.8+1.9=13.5

 四捨五入後:1+1+1+1+2+2+2+2+2=14

となって、+0.5の差が生まれてしまいます。
これは、切り捨てるのは0.1~0.4までの4パターンで、切り上げるのは0.5~0.9までの5パターンのためです。

 

そこで、この誤差を無くそうと考えられたのが偶数丸めです。

 

偶数丸めは丸める一つ上の桁が奇数の場合は5を切り上げ、偶数の場合は5を切り捨てます。

先ほど小数第一位を丸める例で言うと

 

 1.1→ 1

 1.2→ 1

 1.3→ 1

 1.4→ 1

 1.5→ 2

 1.6→ 2

 1.7→ 2

 1.8→ 2

 1.9→ 2

 

一緒じゃん!!!

とお思いでしょうがここからが違います。

一つ上の位が偶数の場合は以下のようになります。

 

 四捨五入   偶数丸め

 2.1→ 2        2.1→ 2

 2.2→ 2        2.2→ 2

 2.3→ 2        2.3→ 2

 2.4→ 2        2.4→ 2

 2.5→ 3        2.5→ 2

 2.6→ 3        2.6→ 3

 2.7→ 3        2.7→ 3

 2.8→ 3        2.8→ 3

 2.9→ 3        2.9→ 3

 

四捨五入の方は「5」を切り上げて、偶数丸めの方は偶数に寄せるので「5」を切り捨てます。
それらを同じように計算すると

 四捨五入前:2.1+2.2+2.3+2.4+2.5+2.6+2.7+2.8+2.9=22.5

 四捨五入後:2+2+2+2+3+3+3+3+3=23

 偶数丸め :2+2+2+2+2+3+3+3+3=22

となり、四捨五入は相変わらず+0.5の差がありますが、偶数丸めの方は-0.5の誤差になっています。

 

そして1.1から2.9までを足すと(前段の計算省略)、

 四捨五入前:13.5+22.5=36.0

 四捨五入後:14.0+23.0=37.0

 偶数丸め :14.0+22.0=36.0

となります。

 

このように偶数奇数で誤差を交互に相殺させることで、より近似値で丸めることが出来るのが偶数丸めです。