.NETに実装されているMathクラスには様々な数学関数(メソッド)が用意されています。また、いくつかの定数も用意されています。
この記事では、Mathクラスで使用する主なメソッドと定数を紹介します。
目次
Mathクラスの主なメソッド一覧
Mathクラスの主なメソッドには次のようなものがあります。
メソッド名 | 説明 |
---|---|
Abs | 指定した数値の絶対値を取得します。 |
Acos | 指定した数値がコサインとなる角度を取得します。 |
Asin | 指定した数値がサインとなる角度を取得します。 |
Atan | 指定した数値がタンジェントとなる角度を取得します。 |
BigMul | 2つの整数の積(掛け算)を計算します。 |
Ceiling | 指定した数値以上の整数のうち、最小の値を取得します。(数値を切り上げます。) |
Cos | 指定した角度のコサインを取得します。 |
DivRem | 2つの数値の商(割り算)を計算を計算します。また、outパラメーターに剰余(余り)を返します。 |
Exp | 指定した数値で e (ネイピア数) を累乗した値を取得します。 |
Floor | 指定した数値以下の整数のうち、最大の値を取得します。(数値を切り捨てます。) |
Max | 指定した2つの数のうち、大きい方を取得します。 |
Min | 指定した2つの数のうち、小さい方を取得します。 |
Pow | 指定した数値を指定した値で累乗した値を取得します。 |
Round | 最も近い整数または指定した小数点以下の桁数に値を丸めます。(数値を四捨五入できます。) |
Sign | 数の符号を示す整数(0または1)を取得します。 |
Sin | 指定した角度のサインを取得します。 |
Sqrt | 指定した数値の平方根を取得します。 |
Tan | 指定した角度のタンジェントを取得します。 |
Truncate | 指定した数値の整数部の値を取得します。(数値を切り捨てます。) |
Mathクラスの定数(フィールド)一覧
フィールド名 | 説明 |
---|---|
Math.E | ネイピア数(自然対数の底)を表します。 |
Math.PI | 円周率(π)を表します。 |
絶対値を取得する
数値の絶対値の取得にはMathクラスのAbsメソッドが使用できます。
Abs メソッド
指定した数値の絶対値を取得します。
Absメソッドの引数にはdecimal, short, int, long, sbyte, float, doubleのいずれかの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Abs(12.34)); // 12.34 Console.WriteLine(Math.Abs(-567.89)); // 567.89 |
切り上げ、切り捨て、四捨五入する
数値の切り上げ、切り捨て、四捨五入には、Ceilingメソッド、Floorメソッド、Truncateメソッド、Roundメソッドが使用できます。
Ceiling メソッド
指定した数値以上の整数のうち、最小の値を取得します。このメソッドを使用して数値の切り上げができます。
Ceilingメソッドの引数にはdecimal, doubleのいずれかの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Ceiling(123.45)); // 124 Console.WriteLine(Math.Ceiling(-123.45)); // -123 |
Floor メソッド
指定した数値以下の整数のうち、最大の値を取得します。このメソッドを使用して数値を切り捨てができます。
Floorメソッドの引数にはdecimal, doubleのいずれかの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Floor(123.45)); // 123 Console.WriteLine(Math.Floor(-123.45)); // -124 |
Truncate メソッド
指定した数値の整数部の値を取得します。このメソッドを使用して数値を切り捨てができます。
Truncateメソッドの引数にはdecimal, doubleのいずれかの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Truncate(123.45)); // 123 Console.WriteLine(Math.Truncate(-123.45)); // -123 |
Round メソッド
最も近い整数または指定した小数点以下の桁数に値を丸めます。このメソッドを使用して数値の四捨五入できます。
Roundメソッドの第1引数にはdecimal, doubleのいずれかの値が指定できます。第2引数には丸める桁数をintで指定します。第2引数を省略した場合は整数に丸められます。第3引数には2つの数値の中間にある場合に丸める方法を示すMidpointRounding列挙型の値を指定します。MidpointRounding.AwayFromZeroを指定すると0から遠い方に丸められるので四捨五入ができます。MidpointRounding.ToEvenを指定すると偶数に近い方に丸められるので偶数丸め(銀行丸め)になります。第3引数を省略した場合は偶数丸めになります。
1 2 3 4 5 6 7 8 |
Console.WriteLine(Math.Round(1234.5)); // 1234 Console.WriteLine(Math.Round(-1234.5, MidpointRounding.AwayFromZero)); // -1235 Console.WriteLine(Math.Round(123.45, 1)); // 123.4 Console.WriteLine(Math.Round(-123.45, 1, MidpointRounding.AwayFromZero)); // -123.5 |
数値を計算する
数値の計算(積・商)にはBigMulメソッド、DivRemメソッドが使用できます。
BigMul メソッド
2つの整数の積(掛け算)を計算します。
BigMulメソッドの引数にはintが指定できます。
1 2 3 4 5 6 7 8 |
Console.WriteLine(Math.BigMul(999999999, 999999999)); // 999999998000000001 Console.WriteLine(Math.BigMul(int.MaxValue, int.MaxValue)); // 4611686014132420609 Console.WriteLine(Math.BigMul(int.MinValue, int.MinValue)); // 4611686018427387904 Console.WriteLine(Math.BigMul(int.MaxValue, int.MinValue)); // -4611686016279904256 |
DivRem メソッド
2つの数値の商(割り算)を計算を計算します。また、outパラメーターに剰余(余り)を返します。
DivRemメソッドの引数にはint, longのいずれかの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.DivRem(999999, 12345, out int remainder)); // 81 Console.WriteLine(remainder); // 54 |
平方根を取得する
数値の平方根の取得にはSqrtメソッドが使用できます。
Sqrt メソッド
指定した数値の平方根を取得します。
Sqrtメソッドの引数にはdoubleの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Sqrt(100)); // 10 Console.WriteLine(Math.Sqrt(1234.567)); // 35.1364056215203 |
累乗した値を取得する
数値を累乗した値を取得するにはPowメソッド、Expメソッドが使用できます。
Pow メソッド
指定した数値を指定した値で累乗した値を取得します。
Powメソッドの引数にはdoubleの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Pow(10, 3)); // 1000 Console.WriteLine(Math.Pow(3, 10)); // 59049 |
Exp メソッド
指定した数値で e (ネイピア数) を累乗した値を取得します。
Expメソッドの引数にはdoubleの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Exp(3)); // 20.0855369231877 Console.WriteLine(Math.Exp(10)); // 22026.4657948067 |
Math.Exp(3)はMath.Pow(Math.E, 3)と同じになります。
Math.Exp(10)はMath.Pow(Math.E, 10)と同じになります。
数値の符号を表す値を取得する
数値の符号を取得するにはSignメソッドが使用できます。
Sign メソッド
数値の符号を示す整数(1 or 0 or -1)を取得します。
Signメソッドの引数にはdecimal, short, int, long, sbyte, float, doubleのいずれかの値が指定できます。
1 2 3 4 5 6 |
Console.WriteLine(Math.Sign(123)); // 1 Console.WriteLine(Math.Sign(0)); // 0 Console.WriteLine(Math.Sign(-123)); // -1 |
数値の大小を取得する
数値の大小を取得するにはMaxメソッド、Minメソッドが使用できます。
Max メソッド
指定した2つの数のうち、大きい方を取得します。
Maxメソッドの引数にはdecimal, short, int, long, byte, sbyte, float, double, ushort, uint, ulongのいずれかの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Max(123.45, 234.56)); // 234.56 Console.WriteLine(Math.Max(-123.45, -234.56)); // -123.45 |
Min メソッド
指定した2つの数のうち、小さい方を取得します。
Minメソッドの引数にはdecimal, short, int, long, byte, sbyte, float, double, ushort, uint, ulongのいずれかの値が指定できます。
1 2 3 4 |
Console.WriteLine(Math.Min(123.45, 234.56)); // 123.45 Console.WriteLine(Math.Min(-123.45, -234.56)); // -234.56 |
サイン、コサイン、タンジェントを取得する
指定した角度(ラジアン)のサイン、コサイン、タンジェントを取得するには、Sinメソッド、Cosメソッド、Tanメソッドが使用できます。
Sin メソッド
指定した角度(ラジアン)のサインを取得します。
Sinメソッドの引数にはdoubleの値が指定できます。指定する値はラジアンで表した角度になります。
1 2 3 4 5 6 7 8 9 10 11 |
var angle = 0; // 角度が30°の場合 angle = 30; Console.WriteLine(Math.Sin(angle * (Math.PI / 180))); // 0.5 // 角度が60°の場合 angle = 60; Console.WriteLine(Math.Sin(angle * (Math.PI / 180))); // 0.866025403784439 |
Cos メソッド
指定した角度(ラジアン)のコサインを取得します。
Cosメソッドの引数にはdoubleの値が指定できます。指定する値はラジアンで表した角度になります。
1 2 3 4 5 6 7 8 9 10 11 |
var angle = 0; // 角度が30°の場合 angle = 30; Console.WriteLine(Math.Cos(angle * (Math.PI / 180))); // 0.866025403784439 // 角度が60°の場合 angle = 60; Console.WriteLine(Math.Cos(angle * (Math.PI / 180))); // 0.5 |
Tan メソッド
指定した角度(ラジアン)のタンジェントを取得します。
Tanメソッドの引数にはdoubleの値が指定できます。指定する値はラジアンで表した角度になります。
1 2 3 4 5 6 7 8 9 10 11 |
var angle = 0; // 角度が30°の場合 angle = 30; Console.WriteLine(Math.Tan(angle * (Math.PI / 180))); // 0.577350269189626 // 角度が60°の場合 angle = 60; Console.WriteLine(Math.Tan(angle * (Math.PI / 180))); // 1.73205080756888 |
アークサイン、アークコサイン、アークタンジェントを取得する
指定したサイン、コサイン、タンジェントの値(ラジアン)となる角度を取得するにはAsinメソッド、Acosメソッド、Atanメソッドが使用できます。
Asin メソッド
指定した数値がサインとなる角度を取得します。
AsinメソッドはSinメソッドの逆三角関数です。
Asinメソッドの引数にはサインを表すdoubleの値が指定できます。
Asinメソッドの戻り値はラジアンで表した角度になります。
1 2 3 4 |
Console.WriteLine(Math.Asin(0.5) / (Math.PI / 180)); // 30 Console.WriteLine(Math.Asin(0.707106781186547) / (Math.PI / 180)); // 45 |
Acos メソッド
指定した数値がコサインとなる角度を取得します。
AcosメソッドはCosメソッドの逆三角関数です。
Acosメソッドの引数にはコサインを表すdoubleの値が指定できます。
Acosメソッドの戻り値はラジアンで表した角度になります。
1 2 3 4 |
Console.WriteLine(Math.Acos(0.866025403784439) / (Math.PI / 180)); // 30 Console.WriteLine(Math.Acos(0.707106781186548) / (Math.PI / 180)); // 45 |
Atan メソッド
指定した数値がタンジェントとなる角度を取得します。
AtanメソッドはTanメソッドの逆三角関数です。
Atanメソッドの引数にはタンジェントを表すdoubleの値が指定できます。
Atanメソッドの戻り値はラジアンで表した角度になります。
1 2 3 4 |
Console.WriteLine(Math.Atan(0.577350269189626) / (Math.PI / 180)); // 30 Console.WriteLine(Math.Atan(1) / (Math.PI / 180)); // 45 |