C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のMath.Round()メソッドとは?使い方とオーバーロードを解説

C#のMath.Round()メソッドは、数値を最も近い整数に丸めたり、指定した小数点以下の桁数で四捨五入したりするためのメソッドです。Decimal型やDouble型など、さまざまな引数の組み合わせに対応したオーバーロードが用意されており、丸め方(MidpointRounding)も細かく指定できます。

Math.Round()メソッドのオーバーロード一覧

Math.Round()には、以下のようなオーバーロードが用意されています。

Math.Round(Double)
Math.Round(Double, Int32)
Math.Round(Double, Int32, MidpointRounding)
Math.Round(Double, MidpointRounding)
Math.Round(Decimal)
Math.Round(Decimal, Int32)
Math.Round(Decimal, Int32, MidpointRounding)
Math.Round(Decimal, MidpointRounding)

使用例1:Math.Round(Decimal)

まずは、Decimal型の値を丸める例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 78.12m;
        Decimal val2 = 30.675m;
        Console.WriteLine("Decimal Value = " + val1);
        Console.WriteLine("Rounded value = " + Math.Round(val1));
        Console.WriteLine("Decimal Value = " + val2);
        Console.WriteLine("Rounded value = " + Math.Round(val2));
    }
}

実行結果

Decimal Value = 78.12
Rounded value = 78
Decimal Value = 30.675
Rounded value = 31

このように、78.12は最も近い整数である「78」に、30.675は「31」に丸められます。

使用例2:Math.Round(Double)

次に、Double型の値を丸める例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        Double val1 = 23.10;
        Double val2 = 90.98;
        Console.WriteLine("Double Value = " + val1);
        Console.WriteLine("Rounded value = " + Math.Round(val1));
        Console.WriteLine("Double Value = " + val2);
        Console.WriteLine("Rounded value = " + Math.Round(val2));
    }
}

実行結果

Double Value = 23.1
Rounded value = 23
Double Value = 90.98
Rounded value = 91

23.10は「23」に、90.98は「91」に丸められていることがわかります。

まとめ

Math.Round()メソッドを使うことで、Decimal型・Double型の数値を簡単に丸めることができます。デフォルトでは最も近い整数に丸められますが、第2引数で小数点以下の桁数を指定したり、MidpointRounding列挙体で中間値の扱い(銀行家の丸めや四捨五入など)を制御したりすることも可能です。金額計算など精度が求められる場面では、Decimal型と組み合わせて使うのがおすすめです。

  1. C#のMath.Exp()メソッドの使い方を徹底解説!eの累乗計算と特殊値の挙動

    C#のMath.Exp()メソッドは、自然対数の底「e」(ネイピア数、約2.71828)を指定した値で累乗した結果を返すメソッドです。数学的な指数関数の計算が必要な場面で活用されます。構文public static double Exp (double val);引数 val には、eの累乗の指数となる倍精度浮動小数点数(double型)を指定します。戻り値もdouble型です。特殊な値が渡された場合の挙動NaN(非数)またはPositiveInfinity(正の無限大)を渡した場合 → その値がそのまま返されます。NegativeInfinity(負の無限大)を渡した場合 → 0 が返されま

  2. C#のMath.DivRem()メソッドの使い方を徹底解説!商と余りを同時に取得する方法

    C#のMath.DivRem()メソッドは、2つの数値の除算を行って商(quotient)を返すとともに、余り(remainder)をoutパラメータとして受け取ることができる便利なメソッドです。通常、商と余りの両方を求めるには「/」演算子と「%」演算子を別々に使う必要がありますが、このメソッドを使えば一度の呼び出しで両方の結果を取得できます。構文public static int DivRem(int dividend, int divisor, out int remainder); public static long DivRem(long dividend, long divisor