C# の数学ライブラリは、数学におけるさまざまな一般関数、三角関数、統計関数、対数関数とプロパティを開発者に提供します。これはプラグアンドプレイですぐに使用できるライブラリです。ライブラリは、C# のスーパー親クラスである Object クラスを継承します。これは System 名前空間に存在します。
注: 心に留めておくべき非常に重要なことの 1 つは、Math クラスのプロパティとメソッドはすべて静的であるということです。つまり、それらを呼び出すために Math クラスのオブジェクトを作成する必要はありません。数学ライブラリのさまざまな数学的プロパティを見てみましょう。
E は対数の底であり、数式では小文字「e」で指定されます。この静的プロパティは、自然対数の底の値を保持します。
コード:
using System; public class Program { public static void Main() { Console.WriteLine("The value of logarithmic base E is " + Math.E); } }
出力:
Pi は、一般に記号 p と書かれ、円の円周と直径の比 (約 3.14) です。この静的定数は p の値を保持します。
コード:
using System; public class Program { public static void Main() { Console.WriteLine("The value of PI is " + Math.PI); } }
出力:
自由に利用できる C# Math ライブラリのさまざまな数学関数を見てみましょう。
指定された数値 (整数、10 進数、浮動小数点など) の絶対値を返します。数値の絶対値は、0 以上で数値自体以下の最大の 10 進数値です。
コード:
using System; public class Program { public static void Main() { int num1 = 231; double num2 = -1.23456789; Console.WriteLine("The absolute value of {0} is {1} ", num1, Math.Abs(num1)); Console.WriteLine("The absolute value of {0} is {1} ", num2, Math.Abs(num2)); } }
出力:
この関数は、2 つの非常に大きな整数の完全な乗算結果を返します。 2 つの 32 ビット整数を受け取り、64 ビットの乗算結果を返します。
コード:
using System; public class Program { public static void Main() { int num1 = Int32.MaxValue; Console.WriteLine("Multiplication of {0}x{0} without Math function - {1}",num1, num1*num1); Console.WriteLine("Multiplication of {0}x{0} by Math BigMul function - {1}",num1, Math.BigMul(num1, num1)); } }
出力:
floor() 関数と Ceiling() 関数は、指定された数値の下限値と上限値を返します。数値の下限値は、数値自体以下の最大の整数です。数値の上限値は、その数値以上の最小の整数です。
コード:
using System; public class Program { public static void Main() { double num1 = 548.65; Console.WriteLine("Floor value of {0} is {1}", num1, Math.Floor(num1)); Console.WriteLine("Ceil value of {0} is {1}", num1, Math.Ceiling(num1)); } }
出力:
これらの三角関数は、指定された角度のサイン、コサイン、タンジェントの値を提供します。
コード:
using System; public class Program { public static void Main() { double angle = 120.5; Console.WriteLine("Sine value of {0} is {1}", angle, Math.Sin(angle)); Console.WriteLine("Cosine value of {0} is {1}", angle,Math.Cos(angle)); Console.WriteLine("Tangent value of {0} is {1}", angle, Math.Tan(angle)); } }
出力:
これらの三角関数は、指定された角度の双曲線サイン、コサイン、タンジェントの値を提供します。
コード:
using System; public class Program { public static void Main() { double angle = 120.5; Console.WriteLine("Hyperbolic Sine value of {0} is {1}", angle, Math.Sinh(angle)); Console.WriteLine("Hyperbolic Cosine value of {0} is {1}", angle, Math.Cosh(angle)); Console.WriteLine("Hyperbolic Tangent value of {0} is {1}", angle,Math.Tanh(angle)); } }
出力:
これらの三角関数は、指定された数値がサイン、コサイン、またはタンジェントの値となる角度を返します。
コード:
using System; public class Program { public static void Main() { double value = 1; Console.WriteLine("The angle of sin({0}) is {1}", value, Math.Asin(value)); Console.WriteLine("The angle of cos({0}) is {1}", value, Math.Acos(value)); Console.WriteLine("The angle of tan({0}) is {1}", value, Math.Atan(value)); } }
出力:
この関数は、2 つの整数の除算の結果を計算します。結果は小数値では返されません。むしろ、商は関数の戻り値として返され、剰余は出力パラメータとして返されます。
コード:
using System; public class Program { public static void Main() { int divisor = 8; int dividend = 45; int remainder = 0; int quotient = Math.DivRem(dividend, divisor, out remainder); Console.WriteLine("{0} divided by {1} results in {2} as the quotient and {3} as the remainder.", dividend, divisor, quotient, remainder); } }
出力:
exp 関数は、e を指定された数値で乗って返します。
コード:
using System; public class Program { public static void Main() { int power = 4; Console.WriteLine("{0} to the power of {1} is {2}.", Math.E, power, Math.Exp(power)); } }
出力:
log 関数は、指定された数値の指定された底に対する対数を返します。底が指定されていない場合、デフォルトの底は e となり、自然対数になります。
注: Log2 は .Net Core で導入されました。このメソッドは .Net Framework では使用できません。
コード:
using System; public class Program { public static void Main() { double num1 = 4.5; int new_base = 12; Console.WriteLine("Log({0}) to the base 'e' is {1}.", num1, Math.Log(num1)); Console.WriteLine("Log({0}) to the base 10 is {1}.", num1,Math.Log10(num1)); Console.WriteLine("Log({0}) to the base 2 is {1}.", num1,Math.Log(num1, 2)); Console.WriteLine("Log({0}) to the base {1} is {2}.", num1,new_base, Math.Log(num1, new_base)); } }
出力:
これらの関数は、指定された 2 つの数値を比較し、2 つの数値のうち小さい方の数値または大きい方の数値を返します。
コード:
using System; public class Program { public static void Main() { double num1 = 4.5; double num2 = -3.4; int num3 = 981; int num4 = 123; Console.WriteLine("Minimum of {0} and {1} is {2}.", num1, num2,Math.Min(num1, num2)); Console.WriteLine("Maximum of {0} and {1} is {2}.", num1, num2,Math.Max(num1, num2)); Console.WriteLine("Minimum of {0} and {1} is {2}.", num3, num4,Math.Min(num3, num4)); Console.WriteLine("Maximum of {0} and {1} is {2}.", num3, num4,Math.Max(num3, num4)); } }
出力:
The pow() function returns the specified number to the specified power.
Code:
using System; public class Program { public static void Main() { int num1 = 11; double num2 = 3.4; Console.WriteLine("{0} to the power {1} is {2}.", num1, num2, Math.Pow(num1, num2)); Console.WriteLine("The cube of {0} is {1}.", num1, Math.Pow(num1, 3)); } }
Output:
The round() function, as the name suggests, rounds the specified number to the nearest integer or specified decimal places after the integer.
There are a few important variations of round() function. It takes either two or three arguments.
The two modes are:
If not specified, the mode AwayFromZero is the default mode.
Code:
using System; public class Program { public static void Main() { double num1 = 2.45; double num2 = 24.5; Console.WriteLine("{0} rounded to the nearest integer is {1}", num1, Math.Round(num1)); Console.WriteLine("{0} rounded to the nearest single-point decimal is {1}", num1, Math.Round(num1, 1)); Console.WriteLine("{0} rounded to the nearest single-point decimal away from zero is {1}", num1, Math.Round(num1, 1, MidpointRounding.AwayFromZero)); Console.WriteLine("{0} rounded to the nearest single-point decimal to even is {1}", num1, Math.Round(num1, 1, MidpointRounding.ToEven)); Console.WriteLine("\n{0} rounded to the nearest integer away from zero is {1}", num2, Math.Round(num2, MidpointRounding.AwayFromZero)); Console.WriteLine("{0} rounded to the nearest integer to even is {1}", num2, Math.Round(num2, MidpointRounding.ToEven)); } }
Output:
This function returns the square root of the given number.
Code:
using System; public class Program { public static void Main() { int num1 = 196; double num2 = 404.1; Console.WriteLine("Square root of {0} is {1}.", num1,Math.Sqrt(num1)); Console.WriteLine("Square root of {0} is {1}.", num2, Math.Sqrt(num2)); } }
Output:
The truncate function returns an integral part of the specified number. So, in simple terms, it discards anything after the decimal point and returns everything before the decimal point.
Note: Note that this is different from Round function. The round function returns an integer nearest to the number. It may be an integer greater than the number itself. Whereas, Truncate function would always return the integer part of the number as is. E.g. – Round(4.9) results in 5. Truncate(4.9) results in 4.Code:
using System; public class Program { public static void Main() { double num1 = 404.92; Console.WriteLine("Truncated value of {0} is {1}.", num1, Math.Truncate(num1)); Console.WriteLine("Rounded-off value of {0} is {1}.", num1, Math.Round(num1)); } }
Output:
This article covered almost all the mathematical functions provided in the C# Math library. This library proves to be very useful due to the plug-n-play mathematical properties and functions, thereby making development easier.
以上がC# の数学関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。