System.MidpointRounding 列挙型
この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。
MidpointRoundingの適切なオーバーロードを持つ列挙体をMath.RoundMathF.Round使用しDecimal.Round、丸め処理をより詳細に制御します。
全体的な丸め方法は 2 つあり、最も近い 四捨五入と 有向の丸めを行います。各列挙フィールドは、これらの戦略の 1 つに正確に参加します。
最も近い値に丸める
フィールド:
最も近い丸め操作は、暗黙的または指定された有効桁数を持つ元の数値を受け取ります。は次の桁を調べます。これは、その有効桁数に 1 を加えた値です。元の数値と同じ有効桁数で最も近い数値を返します。 正の数値の場合、次の桁が 0 から 4 の場合、最も近い数値は負の無限大になります。 次の桁が 6 から 9 の場合、最も近い数値は正の無限大になります。 負の数の場合、次の桁が 0 から 4 の場合、最も近い数値は正の無限大になります。 次の桁が 6 から 9 の場合、最も近い数値は負の無限大になります。
次の桁が 0 から 4 または 6 から 9 の場合、MidpointRounding.AwayFromZero
MidpointRounding.ToEven
丸め操作の結果には影響しません。 ただし、次の桁が 5 で、2 つの結果の中間点であり、すべての再メイン桁がゼロであるか、または再メイン桁がない場合、最も近い数値はあいまいになります。 この場合、最も近い四捨五入モード MidpointRounding
を使用すると、丸め操作で 0 から最も近い数値を返すか、最も近い偶数を返すかを指定できます。
次の表は、一部の負の数値と正の数値を、最も近い丸めモードと組み合わせて丸める結果を示しています。 数値の丸めに使用される有効桁数は 0 です。これは、小数点の後の数値が丸め操作に影響することを意味します。 たとえば、-2.5 の場合、小数点の後の数字は 5 です。 その数字は中間点であるため、値を MidpointRounding
使用して丸めの結果を決定できます。 指定した場合 AwayFromZero
、-3 は、有効桁数が 0 のゼロから最も近い数値であるために返されます。 指定した場合 ToEven
、有効桁数が 0 の最も近い偶数であるため、-2 が返されます。
元の番号 | AwayFromZero | ToEven |
---|---|---|
3.5 | 4 | 4 |
2.8 | 3 | 3 |
2.5 | 3 | 2 |
2.1 | 2 | 2 |
-2.1 | -2 | -2 |
2.5- | -3 | -2 |
-2.8 | -3 | -3 |
3.5- | -4 | -4 |
有向丸め
フィールド:
直接丸め操作は、暗黙的または指定された有効桁数を持つ元の数値を受け取り、元の数値と同じ精度で特定の方向に最も近い次の数値を返します。 丸め処理が MidpointRounding
実行される定義済みの番号に対する制御の方向指定モード。
次の表は、有向丸めモードと組み合わせて負の数値と正の数値を丸めた結果を示しています。 数値の丸めに使用される有効桁数は 0 です。これは、小数点が丸め操作の影響を受ける前の数値を意味します。
元の番号 | ToNegativeInfinity | ToPositiveInfinity | ToZero |
---|---|---|---|
3.5 | 3 | 4 | 3 |
2.8 | 2 | 3 | 2 |
2.5 | 2 | 3 | 2 |
2.1 | 2 | 3 | 2 |
-2.1 | -3 | -2 | -2 |
2.5- | -3 | -2 | -2 |
-2.8 | -3 | -2 | -2 |
3.5- | -4 | -3 | -3 |
.NET