数値を切り上げ・切り捨て・四捨五入する [C#]

数値を切り上げ、切り捨て、四捨五入する方法を紹介します。

数値の小数以下を切り上げる

数値を整数に切り上げる場合はMathクラスのCeiling静的メソッドを使用するか、decimal構造体Ceiling静的メソッドを使用します。

以下にCeiling静的メソッドを使用する例をサンプルコードで示します。

Ceiling静的メソッドは指定した数値以上の最小の整数値にして返します。

上記のサンプルコードの処理結果は「124」になります。

数値の小数以下を切り捨てる

数値を整数に切り上げる場合はMathクラスのFloor静的メソッドを使用するか、decimal構造体Floor静的メソッドを使用します。

以下にFloor静的メソッドを使用する例をサンプルコードで示します。

Floor静的メソッドは指定した数値以下の最大の整数値にして返します。

上記のサンプルコードの処理結果は「123」になります。

数値の小数以下を四捨五入する

数値を整数に切り上げる場合はMathクラスのRound静的メソッドを使用するか、decimal構造体Round静的メソッドを使用します。

以下にRound静的メソッドを使用する例をサンプルコードで示します。

Round静的メソッドは指定した数値を四捨五入した整数値を返します。
Round静的メソッドは第1引数のみ指定して呼び出すと、丸める小数以下の桁数の値が5の時に、最も近い偶数方向に丸められます。(この丸め方を偶数丸め、銀行丸めという。)これは端数処理を行った結果の値を合計する際に誤差が少なくなるため、Round静的メソッド初期動作となっています。
ですので、丸める小数以下の桁数の値が5の時に五入するためにMidpointRounding列挙型のAwayFromZeroを指定してやります。
こうすることで、四捨五入の動作になります。

上記のサンプルコードの処理結果は「123」になります。

指定した小数以下の桁数に切り上げる

数値を指定した小数以下の桁数に切り上げるメソッドはC#に用意されていません。(MathクラスのCeiling静的メソッド、またはdecimal構造体Ceiling静的メソッドで直接処理できません。)ですので、Ceiling静的メソッドを使用する前後に少しだけ操作してやります。

以下に指定した小数以下の桁数に切り上げる例をサンプルコードで示します。

Ceiling静的メソッドを呼び出す前に、一旦有効にする小数以下の桁数までを整数にします。
そしてCeiling静的メソッドで切り上げ処理を行った後、整数にしていた値を小数に戻します。
上記の例では、小数第1まで有効にするために一旦10を掛けて1234.5にしてからCeiling成績メソッドを呼び出して整数に切り上げし、取得した結果を10で割って小数第1まで有効にした数値を取得しています。

上記のサンプルコードの処理結果は「123.5」になります。

指定した小数以下の桁数に切り捨てる

数値を指定した小数以下の桁数に切り捨てるメソッドは切り上げの場合と同じくC#に用意されていません。(MathクラスのFloor静的メソッド、またはdecimal構造体Floor静的メソッドで直接処理できません。)こちらも切り上げの時と同様にFloor静的メソッドを呼び出す前後に操作してやります。

以下に指定した小数以下の桁数に切り捨てる例をサンプルコードで示します。

処理の方法はCeiling静的メソッドを使った切り上げ処理と同様です。

上記のサンプルコードの処理結果は「123.4」になります。

指定した小数以下の桁数に四捨五入する

数値を指定した小数以下の桁数に四捨五入する場合は整数の場合と同様にRound静的メソッドを使用します。

以下にRound静的メソッドを使用する例をサンプルコードで示します。

上記の例では小数第2位を四捨五入して、小数第1位まで有効にしています。

処理結果は「123.5」になります。

サンプルプログラム

ユーザーインターフェース

フォームのUIは以下のようにします。
数値の切り上げ、切り捨て、四捨五入サンプルフォームデザイン

ソースコード

実行結果

プログラムを実行して条件を指定して[button1]をクリックすると、切り上げ、切り捨て、四捨五入のいずれかの処理を行った結果が、[結果]のテキストボックスに表示されます。

数値の切り上げ、切り捨て、四捨五入サンプルフォーム実行結果