演算

[C#] 数値を四捨五入する(Math.Round)

2021年5月18日

数値を四捨五入するには、Math.Round()を使用します。

前提

四捨五入には、通常の四捨五入銀行丸めの2種類があります。

  • 通常の四捨五入:単純に4以下は切捨て、5以上は切上げする方法。
    (例)1.4→1.0、1.5→2.0
  • 銀行丸め:対象桁の値が5の場合、1つ上桁の数値が偶数になるように丸める方法。
    (例)1.5→2.0、2.5→2.0、3.5→4.0、4.5→4.0

通常の四捨五入

通常の四捨五入は、引数にMidpointRounding.AwayFromZeroを指定します。

例)四捨五入するサンプル

//元の数値
double d  123.4567;

//整数に四捨五入する
double d0 = Math.Round(d, MidpointRounding.AwayFromZero);
d0 → 123

//小数第1位で四捨五入
double d1 = Math.Round(d, 1, MidpointRounding.AwayFromZero);
d0 → 123.5

//小数第2位で四捨五入
double d2 = Math.Round(d, 2, MidpointRounding.AwayFromZero);
d0 → 123.46

//小数第3位で四捨五入
double d3 = Math.Round(d, 3, MidpointRounding.AwayFromZero);
d0 → 123.457

銀行丸めの四捨五入

Math.Roundは銀行丸めの四捨五入がデフォルトです。

例)四捨五入するサンプル

//元の数値
double d  123.4567;

//整数に四捨五入する
double d0 = Math.Round(d);
d0 → 123

//小数第1位で四捨五入
double d1 = Math.Round(d, 1);
d0 → 123.5

//小数第2位で四捨五入
double d2 = Math.Round(d, 2);
d0 → 123.46

//小数第3位で四捨五入
double d3 = Math.Round(d, 3);
d0 → 123.457

備考

  • Math.Roundは、銀行丸めがデフォルトの四捨五入方法です。
  • 銀行丸めは「最近接偶数丸め」とも呼ばれます。
  • 通常の四捨五入を行いたい場合は、MidpointRounding.AwayFromZeroを指定する必要があります。

関連記事

-演算
-,