数値処理

[C#] 四捨五入する(Round)

値の四捨五入

銀行丸めで四捨五入する

指定した値を、銀行丸め(最も近い偶数に寄せて四捨五入すること)で四捨五入するには、MathクラスのRoundメソッドを使用します。

Math.Round(数値)

それではサンプルを見てみましょう。
Console.WriteLineを使って、Roundの動作をコンソールに出力します。

上記を実行した結果がこちらです。

実行結果

2
2
-2
-2

実行結果がコンソールに出力されました。
通常の四捨五入では2.5は3となりますが、銀行丸めでの四捨五入であるため、2となっているのがわかります。

 

完全な四捨五入をする

完全な四捨五入をするには、MathクラスのRoundメソッドの第2引数にMidpointRounding.AwayFromZeroを指定します。

なぜ銀行丸めが引数なしで、完全な四捨五入に引数が必要かというと、銀行丸めでの四捨五入がIEEE754で定められているからなんです。

つまり、銀行丸めのほうがより一般的な四捨五入であるということです。

Math.Round(数値, MidpointRounding.AwayFromZero)

それではサンプルを見てみましょう。
Console.WriteLineを使って、Roundの動作をコンソールに出力します。

上記を実行した結果がこちらです。

実行結果

2
3
-2
-3

実行結果がコンソールに出力されました。
今度は2.5が3となり、完全な四捨五入が行われてことがわかります。
 
 
以上が、数値の四捨五入を行うメソッド「Round」の使い方です。
ぜひ参考にしてみてください。