# Math クラス

## 定義

``public ref class Math abstract sealed``
``public ref class Math sealed``
``public static class Math``
``public sealed class Math``
``type Math = class``
``Public Class Math``
``Public NotInheritable Class Math``

Math

## 例

``````/// <summary>
/// The following class represents simple functionality of the trapezoid.
/// </summary>
using namespace System;

public ref class MathTrapezoidSample
{
private:
double m_longBase;
double m_shortBase;
double m_leftLeg;
double m_rightLeg;

public:
MathTrapezoidSample( double longbase, double shortbase, double leftLeg, double rightLeg )
{
m_longBase = Math::Abs( longbase );
m_shortBase = Math::Abs( shortbase );
m_leftLeg = Math::Abs( leftLeg );
m_rightLeg = Math::Abs( rightLeg );
}

private:
double GetRightSmallBase()
{
return (Math::Pow( m_rightLeg, 2.0 ) - Math::Pow( m_leftLeg, 2.0 ) + Math::Pow( m_longBase, 2.0 ) + Math::Pow( m_shortBase, 2.0 ) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase));
}

public:
double GetHeight()
{
double x = GetRightSmallBase();
return Math::Sqrt( Math::Pow( m_rightLeg, 2.0 ) - Math::Pow( x, 2.0 ) );
}

double GetSquare()
{
return GetHeight() * m_longBase / 2.0;
}

double GetLeftBaseRadianAngle()
{
double sinX = GetHeight() / m_leftLeg;
return Math::Round( Math::Asin( sinX ), 2 );
}

double GetRightBaseRadianAngle()
{
double x = GetRightSmallBase();
double cosX = (Math::Pow( m_rightLeg, 2.0 ) + Math::Pow( x, 2.0 ) - Math::Pow( GetHeight(), 2.0 )) / (2 * x * m_rightLeg);
return Math::Round( Math::Acos( cosX ), 2 );
}

double GetLeftBaseDegreeAngle()
{
double x = GetLeftBaseRadianAngle() * 180 / Math::PI;
return Math::Round( x, 2 );
}

double GetRightBaseDegreeAngle()
{
double x = GetRightBaseRadianAngle() * 180 / Math::PI;
return Math::Round( x, 2 );
}

};

int main()
{
MathTrapezoidSample^ trpz = gcnew MathTrapezoidSample( 20.0,10.0,8.0,6.0 );
Console::WriteLine( "The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0" );
double h = trpz->GetHeight();
Console::WriteLine( "Trapezoid height is: {0}", h.ToString() );
double dxR = trpz->GetLeftBaseRadianAngle();
Console::WriteLine( "Trapezoid left base angle is: {0} Radians", dxR.ToString() );
double dyR = trpz->GetRightBaseRadianAngle();
Console::WriteLine( "Trapezoid right base angle is: {0} Radians", dyR.ToString() );
double dxD = trpz->GetLeftBaseDegreeAngle();
Console::WriteLine( "Trapezoid left base angle is: {0} Degrees", dxD.ToString() );
double dyD = trpz->GetRightBaseDegreeAngle();
Console::WriteLine( "Trapezoid left base angle is: {0} Degrees", dyD.ToString() );
}
``````
``````/// <summary>
/// The following class represents simple functionality of the trapezoid.
/// </summary>
using System;

namespace MathClassCS
{
class MathTrapezoidSample
{
private double m_longBase;
private double m_shortBase;
private double m_leftLeg;
private double m_rightLeg;

public MathTrapezoidSample(double longbase, double shortbase, double leftLeg, double rightLeg)
{
m_longBase = Math.Abs(longbase);
m_shortBase = Math.Abs(shortbase);
m_leftLeg = Math.Abs(leftLeg);
m_rightLeg = Math.Abs(rightLeg);
}

private double GetRightSmallBase()
{
return (Math.Pow(m_rightLeg,2.0) - Math.Pow(m_leftLeg,2.0) + Math.Pow(m_longBase,2.0) + Math.Pow(m_shortBase,2.0) - 2* m_shortBase * m_longBase)/ (2*(m_longBase - m_shortBase));
}

public double GetHeight()
{
double x = GetRightSmallBase();
return Math.Sqrt(Math.Pow(m_rightLeg,2.0) - Math.Pow(x,2.0));
}

public double GetSquare()
{
return GetHeight() * m_longBase / 2.0;
}

public double GetLeftBaseRadianAngle()
{
double sinX = GetHeight()/m_leftLeg;
return Math.Round(Math.Asin(sinX),2);
}

public double GetRightBaseRadianAngle()
{
double x = GetRightSmallBase();
double cosX = (Math.Pow(m_rightLeg,2.0) + Math.Pow(x,2.0) - Math.Pow(GetHeight(),2.0))/(2*x*m_rightLeg);
return Math.Round(Math.Acos(cosX),2);
}

public double GetLeftBaseDegreeAngle()
{
double x = GetLeftBaseRadianAngle() * 180/ Math.PI;
return Math.Round(x,2);
}

public double GetRightBaseDegreeAngle()
{
double x = GetRightBaseRadianAngle() * 180/ Math.PI;
return Math.Round(x,2);
}

static void Main(string[] args)
{
MathTrapezoidSample trpz = new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0);
Console.WriteLine("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0");
double h = trpz.GetHeight();
Console.WriteLine("Trapezoid height is: " + h.ToString());
double dxR = trpz.GetLeftBaseRadianAngle();
Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians");
double dyR = trpz.GetRightBaseRadianAngle();
Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians");
double dxD = trpz.GetLeftBaseDegreeAngle();
Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees");
double dyD = trpz.GetRightBaseDegreeAngle();
Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees");
}
}
}
``````
``````'The following class represents simple functionality of the trapezoid.
Class MathTrapezoidSample

Private m_longBase As Double
Private m_shortBase As Double
Private m_leftLeg As Double
Private m_rightLeg As Double

Public Sub New(ByVal longbase As Double, ByVal shortbase As Double, ByVal leftLeg As Double, ByVal rightLeg As Double)
m_longBase = Math.Abs(longbase)
m_shortBase = Math.Abs(shortbase)
m_leftLeg = Math.Abs(leftLeg)
m_rightLeg = Math.Abs(rightLeg)
End Sub

Private Function GetRightSmallBase() As Double
GetRightSmallBase = (Math.Pow(m_rightLeg, 2) - Math.Pow(m_leftLeg, 2) + Math.Pow(m_longBase, 2) + Math.Pow(m_shortBase, 2) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase))
End Function

Public Function GetHeight() As Double
Dim x As Double = GetRightSmallBase()
GetHeight = Math.Sqrt(Math.Pow(m_rightLeg, 2) - Math.Pow(x, 2))
End Function

Public Function GetSquare() As Double
GetSquare = GetHeight() * m_longBase / 2
End Function

Public Function GetLeftBaseRadianAngle() As Double
Dim sinX As Double = GetHeight() / m_leftLeg
GetLeftBaseRadianAngle = Math.Round(Math.Asin(sinX), 2)
End Function

Public Function GetRightBaseRadianAngle() As Double
Dim x As Double = GetRightSmallBase()
Dim cosX As Double = (Math.Pow(m_rightLeg, 2) + Math.Pow(x, 2) - Math.Pow(GetHeight(), 2)) / (2 * x * m_rightLeg)
GetRightBaseRadianAngle = Math.Round(Math.Acos(cosX), 2)
End Function

Public Function GetLeftBaseDegreeAngle() As Double
Dim x As Double = GetLeftBaseRadianAngle() * 180 / Math.PI
GetLeftBaseDegreeAngle = Math.Round(x, 2)
End Function

Public Function GetRightBaseDegreeAngle() As Double
Dim x As Double = GetRightBaseRadianAngle() * 180 / Math.PI
GetRightBaseDegreeAngle = Math.Round(x, 2)
End Function

Public Shared Sub Main()
Dim trpz As MathTrapezoidSample = New MathTrapezoidSample(20, 10, 8, 6)
Console.WriteLine("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0")
Dim h As Double = trpz.GetHeight()
Console.WriteLine("Trapezoid height is: " + h.ToString())
Dim dxR As Double = trpz.GetLeftBaseRadianAngle()
Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians")
Dim dyR As Double = trpz.GetRightBaseRadianAngle()
Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians")
Dim dxD As Double = trpz.GetLeftBaseDegreeAngle()
Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees")
Dim dyD As Double = trpz.GetRightBaseDegreeAngle()
Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees")
End Sub
End Class
``````

## フィールド

 定数 `e` によって示される、自然対数の底を表します。 定数 (π) を指定して、円の直径に対する円周の割合を表します。 定数 τ によって指定される、1 回のターンのラジアン数を表します。

## メソッド

 Decimal 数値の絶対値を返します。 倍精度浮動小数点数の絶対値を返します。 16 ビット符号付き整数の絶対値を返します。 32 ビット符号付き整数の絶対値を返します。 64 ビット符号付き整数の絶対値を返します。 ネイティブ符号付き整数の絶対値を返します。 8 ビット符号付き整数の絶対値を返します。 単精度浮動小数点数の絶対値を返します。 コサインが指定数となる角度を返します。 ハイパーボリック コサインが指定数となる角度を返します。 サインが指定数となる角度を返します。 ハイパーボリック サインが指定数となる角度を返します。 タンジェントが指定数となる角度を返します。 タンジェントが 2 つの指定された数の商である角度を返します。 ハイパーボリック タンジェントが指定数となる角度を返します。 2 つの 32 ビット数値の完全な積を生成します。 2 つの 64 ビット数値の完全な積を生成します。 2 つの符号なし 64 ビット数値の完全な積を生成します。 `x` 未満を比較する、次に小さい値を返します。 `x` を超える比較値の次に大きい値を返します。 指定された数値の立方根を返します。 指定した 10 進数以上の数のうち、最小の整数値を返します。 指定した倍精度浮動小数点数以上の数のうち、最小の整数値を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `min` 以上 `max` 以下の範囲に固定される `value` を返します。 `x` の絶対値と符号 `y` の値を返します。 指定された角度のコサインを返します。 指定された角度のハイパーボリック コサインを返します。 商と 2 つの符号なし 8 ビット数値の剰余を生成します。 2 つの符号付き 16 ビット数値の商と剰余を生成します。 2 つの符号付き 32 ビット数値の商と剰余を生成します。 2 つの 32 ビット符号付き整数の商を計算し、出力パラメーターの剰余を返します。 2 つの符号付き 64 ビット数値の商と剰余を生成します。 2 つの 64 ビット符号付き整数の商を計算し、出力パラメーターの剰余を返します。 2 つの符号付きネイティブ サイズの数値の商と剰余を生成します。 商と 2 つの符号付き 8 ビット数値の剰余を生成します。 2 つの符号なし 16 ビット数値の商と剰余を生成します。 2 つの符号なし 32 ビット数値の商と剰余を生成します。 2 つの符号なし 64 ビット数値の商と剰余を生成します。 商と 2 つの符号なしネイティブ サイズの数値の剰余を生成します。 指定した値で `e` を累乗した値を返します。 指定した 10 進数以下の数のうち、最大の整数値を返します。 指定した倍精度浮動小数点数以下の数のうち、最大の整数値を返します。 1 つの三項演算として丸められた、(x * y) + z を返します。 指定した数を別の指定数で除算した結果の剰余を返します。 指定した数の底 2 の整数の対数を返します。 指定した数の自然 (底 `e`) 対数を返します。 指定した数値の指定した底での対数を返します。 指定した数の底 10 の対数を返します。 指定した数の底 2 の対数を返します。 2 つの 8 ビット符号なし整数のうち、大きな方を返します。 2 つの 10 進数のうち、大きい方を返します。 2 つの倍精度浮動小数点数のうち、大きい方を返します。 2 つの 16 ビット符号付き整数のうち、大きい方を返します。 2 つの 32 ビット符号付き整数のうち、大きい方を返します。 2 つの 64 ビット符号付き整数のうち、大きい方を返します。 2つのネイティブ符号付き整数のうち、大きい方を返します。 2 つの 8 ビット符号付き整数のうち、大きい方を返します。 2 つの単精度浮動小数点数のうち、大きい方を返します。 2 つの 16 ビット符号なし整数のうち、大きな方を返します。 2 つの 32 ビット符号なし整数のうち、大きな方を返します。 2 つの 64 ビット符号なし整数のうち、大きな方を返します。 2つのネイティブ符号なし整数のうち、大きい方を返します。 2 つの倍精度浮動小数点数のうち、大きい絶対値を返します。 2 つの 8 ビット符号なし整数のうち、小さい方を返します。 2 つの 10 進数のうち、小さい方を返します。 2 つの倍精度浮動小数点数のうち、小さい方を返します。 2 つの 16 ビット符号付き整数のうち、小さい方を返します。 2 つの 32 ビット符号付き整数のうち、小さい方を返します。 2 つの 64 ビット符号付き整数のうち、小さい方を返します。 2つのネイティブ符号付き整数のうち、小さい方を返します。 2 つの 8 ビット符号付き整数のうち、小さい方を返します。 2 つの単精度浮動小数点数のうち、小さい方を返します。 2 つの 16 ビット符号なし整数のうち、小さい方を返します。 2 つの 32 ビット符号なし整数のうち、小さい方を返します。 2 つの 64 ビット符号なし整数のうち、小さい方を返します。 2つのネイティブ符号なし整数のうち、小さい方を返します。 2 つの倍精度浮動小数点数のうち、小さい絶対値を返します。 指定の数値を指定した値で累乗した値を返します。 指定した数値の相互の推定値を返します。 指定した数値の対数平方根の推定値を返します。 10 進数の値は最も近い整数値に丸められ、中間値は最も近い偶数値に丸められます。 10 進数の値は指定した小数部の桁数に丸められ、中間値は最も近い偶数値に丸められます。 指定した丸め規則を使用して、10 進数の値を指定した小数部の桁数に丸します。 指定した丸め規則を使用して、10 進数の値を整数で丸します。 倍精度浮動小数点の値は最も近い整数値に丸められ、中間値は最も近い偶数値に丸められます。 倍精度浮動小数点の値は指定した小数部の桁数に丸められ、中間値は最も近い偶数値に丸められます。 指定した丸め規則を使用して、倍精度浮動小数点値を指定した小数部の桁数に丸します。 指定した丸め規則を使用して、倍精度浮動小数点値を整数に丸します。 効率的に計算された x * 2^n を返します。 10 進数の符号を示す整数を返します。 倍精度浮動小数点数の符号を示す整数を返します。 16 ビット符号付き整数の符号を示す整数を返します。 32 ビット符号付き整数の符号を示す整数を返します。 64 ビット符号付き整数の符号を示す正数を返します。 8 ビット符号付き整数の符号を示す整数を返します。 単精度浮動小数点数の符号を示す値を返します。 指定された角度のサインを返します。 指定された角度のハイパーボリック サインを返します。 指定された数値の平方根を返します。 指定された角度のタンジェントを返します。 指定された角度のハイパーボリック タンジェントを返します。 指定した 10 進数の整数部を計算します。 指定した倍精度浮動小数点数の整数部を計算します。