丸めモード: ゼロ方向
ゼロ方向の丸めは、計算の面では最も簡潔な丸めモードになります。必要な数を超える桁はすべて破棄されます。ゼロ方向の丸めの結果は、常に絶対値がより正確な元の値以下となる数値になります。
ゼロ方向の丸めでは、正の数値の結果に下向きの累積バイアスがもたらされ、負の数値の結果に上向きの累積バイアスがもたらされます。つまり、正の数値はすべてより小さな正の数値に丸められ、負の数値はすべてより大きな負の数値に丸められます。
関数 fix
を使用してゼロ方向に丸めることができます。
ゼロ方向の丸めと切り捨て
ゼロ方向の丸めと "切り捨て" または "チョッピング" は、同じものであると見なされることがあります。ただし、ゼロ方向の丸めと切り捨てによって生じる結果は、符号なしの数や 2 の補数では異なります。このため、"切り捨て" という曖昧な言葉の使用を避け、代わりに明示的な丸めモードという言葉を使用します。
たとえば、5 ビットの符号なしの数の 2 つの最下位ビットを破棄する (切り捨てる) ことで、ゼロ方向に丸める場合を考えてみましょう。たとえば、符号なしの数 100.01 = 4.25 は 100 = 4 に切り捨てられます。したがって、符号なしの数の切り捨ては、ゼロ方向の丸めまたは負方向の丸めと同じになります。
次に、5 ビットの 2 の補数を 2 つの最下位ビットを破棄して丸める場合を考えてみましょう。一目見た限りでは、2 つの補数の切り捨てはゼロ方向の丸めと同じように見えるかもしれません。たとえば、-3.75 の最下位の 2 桁を破棄すると、-3.00 になります。ただし、デジタル ハードウェアが 2 の補数演算を実行すると、異なる結果が生じます。具体的には、100.01 = -3.75 の数は 100 = -4 に切り捨てられます。これは、負方向の丸めになります。