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

次の例では、 クラスのいくつかの数学関数と三角関数を 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");
        }
    }
}
open System

/// The following class represents simple functionality of the trapezoid.
type MathTrapezoidSample(longbase, shortbase, leftLeg, rightLeg) =
    member _.GetRightSmallBase() =
        (Math.Pow(rightLeg, 2.) - Math.Pow(leftLeg, 2.) + Math.Pow(longbase, 2.) + Math.Pow(shortbase, 2.) - 2. * shortbase * longbase) / (2. * (longbase - shortbase))

    member this.GetHeight() =
        let x = this.GetRightSmallBase()
        Math.Sqrt(Math.Pow(rightLeg, 2.) - Math.Pow(x, 2.))

    member this.GetSquare() =
        this.GetHeight() * longbase / 2.

    member this.GetLeftBaseRadianAngle() =
        let sinX = this.GetHeight() / leftLeg
        Math.Round(Math.Asin sinX,2)

    member this.GetRightBaseRadianAngle() =
        let x = this.GetRightSmallBase()
        let cosX = (Math.Pow(rightLeg, 2.) + Math.Pow(x, 2.) - Math.Pow(this.GetHeight(), 2.))/(2. * x * rightLeg)
        Math.Round(Math.Acos cosX, 2)

    member this.GetLeftBaseDegreeAngle() =
        let x = this.GetLeftBaseRadianAngle() * 180. / Math.PI
        Math.Round(x, 2)

    member this.GetRightBaseDegreeAngle() =
        let x = this.GetRightBaseRadianAngle() * 180. / Math.PI
        Math.Round(x, 2)

let trpz = MathTrapezoidSample(20., 10., 8., 6.)
printfn "The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0"
let h = trpz.GetHeight()
printfn $"Trapezoid height is: {h}"
let dxR = trpz.GetLeftBaseRadianAngle()
printfn $"Trapezoid left base angle is: {dxR} Radians"
let dyR = trpz.GetRightBaseRadianAngle()
printfn $"Trapezoid right base angle is: {dyR} Radians"
let dxD = trpz.GetLeftBaseDegreeAngle()
printfn $"Trapezoid left base angle is: {dxD} Degrees"
let dyD = trpz.GetRightBaseDegreeAngle()
printfn $"Trapezoid left base angle is: {dyD} 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

定数 e によって示される、自然対数の底を表します。

PI

定数 (π) を指定して、円の直径に対する円周の割合を表します。

Tau

定数 τ によって指定される、1 回のターンのラジアン数を表します。

メソッド

Abs(Decimal)

Decimal 数値の絶対値を返します。

Abs(Double)

倍精度浮動小数点数の絶対値を返します。

Abs(Int16)

16 ビット符号付き整数の絶対値を返します。

Abs(Int32)

32 ビット符号付き整数の絶対値を返します。

Abs(Int64)

64 ビット符号付き整数の絶対値を返します。

Abs(IntPtr)

ネイティブ符号付き整数の絶対値を返します。

Abs(SByte)

8 ビット符号付き整数の絶対値を返します。

Abs(Single)

単精度浮動小数点数の絶対値を返します。

Acos(Double)

コサインが指定数となる角度を返します。

Acosh(Double)

ハイパーボリック コサインが指定数となる角度を返します。

Asin(Double)

サインが指定数となる角度を返します。

Asinh(Double)

ハイパーボリック サインが指定数となる角度を返します。

Atan(Double)

タンジェントが指定数となる角度を返します。

Atan2(Double, Double)

タンジェントが 2 つの指定された数の商である角度を返します。

Atanh(Double)

ハイパーボリック タンジェントが指定数となる角度を返します。

BigMul(Int32, Int32)

2 つの 32 ビット数値の完全な積を生成します。

BigMul(Int64, Int64, Int64)

2 つの 64 ビット数値の完全な積を生成します。

BigMul(UInt64, UInt64, UInt64)

2 つの符号なし 64 ビット数値の完全な積を生成します。

BitDecrement(Double)

指定した値より小さい値を比較する最大値を返します。

BitIncrement(Double)

指定した値より大きい値を比較する最小値を返します。

Cbrt(Double)

指定された数値の立方根を返します。

Ceiling(Decimal)

指定した 10 進数以上の数のうち、最小の整数値を返します。

Ceiling(Double)

指定した倍精度浮動小数点数以上の数のうち、最小の整数値を返します。

Clamp(Byte, Byte, Byte)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(Decimal, Decimal, Decimal)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(Double, Double, Double)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(Int16, Int16, Int16)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(Int32, Int32, Int32)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(Int64, Int64, Int64)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(IntPtr, IntPtr, IntPtr)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(SByte, SByte, SByte)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(Single, Single, Single)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(UInt16, UInt16, UInt16)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(UInt32, UInt32, UInt32)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(UInt64, UInt64, UInt64)

min 以上 max 以下の範囲に固定される value を返します。

Clamp(UIntPtr, UIntPtr, UIntPtr)

min 以上 max 以下の範囲に固定される value を返します。

CopySign(Double, Double)

x の絶対値と符号 y の値を返します。

Cos(Double)

指定された角度のコサインを返します。

Cosh(Double)

指定された角度のハイパーボリック コサインを返します。

DivRem(Byte, Byte)

2 つの符号なし 8 ビット数値の商と剰余を生成します。

DivRem(Int16, Int16)

2 つの符号付き 16 ビット数値の商と剰余を生成します。

DivRem(Int32, Int32)

2 つの符号付き 32 ビット数値の商と剰余を生成します。

DivRem(Int32, Int32, Int32)

2 つの 32 ビット符号付き整数の商を計算し、出力パラメーターの剰余を返します。

DivRem(Int64, Int64)

2 つの符号付き 64 ビット数値の商と剰余を生成します。

DivRem(Int64, Int64, Int64)

2 つの 64 ビット符号付き整数の商を計算し、出力パラメーターの剰余を返します。

DivRem(IntPtr, IntPtr)

商と、符号付きネイティブ サイズの 2 つの数値の残りの部分を生成します。

DivRem(SByte, SByte)

2 つの符号付き 8 ビット数値の商と剰余を生成します。

DivRem(UInt16, UInt16)

2 つの符号なし 16 ビット数値の商と剰余を生成します。

DivRem(UInt32, UInt32)

2 つの符号なし 32 ビット数値の商と剰余を生成します。

DivRem(UInt64, UInt64)

2 つの符号なし 64 ビット数値の商と剰余を生成します。

DivRem(UIntPtr, UIntPtr)

2 つの符号なしネイティブ サイズの数値の商と剰余を生成します。

Exp(Double)

指定した値で e を累乗した値を返します。

Floor(Decimal)

指定した 10 進数以下の数のうち、最大の整数値を返します。

Floor(Double)

指定した倍精度浮動小数点数以下の数のうち、最大の整数値を返します。

FusedMultiplyAdd(Double, Double, Double)

1 つの三項演算として丸められた、(x * y) + z を返します。

IEEERemainder(Double, Double)

指定した数を別の指定数で除算した結果の剰余を返します。

ILogB(Double)

指定した数の底 2 の整数の対数を返します。

Log(Double)

指定した数の自然 (底 e) 対数を返します。

Log(Double, Double)

指定した数値の指定した底での対数を返します。

Log10(Double)

指定した数の底 10 の対数を返します。

Log2(Double)

指定した数の底 2 の対数を返します。

Max(Byte, Byte)

2 つの 8 ビット符号なし整数のうち、大きな方を返します。

Max(Decimal, Decimal)

2 つの 10 進数のうち、大きい方を返します。

Max(Double, Double)

2 つの倍精度浮動小数点数のうち、大きい方を返します。

Max(Int16, Int16)

2 つの 16 ビット符号付き整数のうち、大きい方を返します。

Max(Int32, Int32)

2 つの 32 ビット符号付き整数のうち、大きい方を返します。

Max(Int64, Int64)

2 つの 64 ビット符号付き整数のうち、大きい方を返します。

Max(IntPtr, IntPtr)

2 つのネイティブ符号付き整数のうち大きい方を返します。

Max(SByte, SByte)

2 つの 8 ビット符号付き整数のうち、大きい方を返します。

Max(Single, Single)

2 つの単精度浮動小数点数のうち、大きい方を返します。

Max(UInt16, UInt16)

2 つの 16 ビット符号なし整数のうち、大きな方を返します。

Max(UInt32, UInt32)

2 つの 32 ビット符号なし整数のうち、大きな方を返します。

Max(UInt64, UInt64)

2 つの 64 ビット符号なし整数のうち、大きな方を返します。

Max(UIntPtr, UIntPtr)

2 つのネイティブ符号なし整数のうち大きい方を返します。

MaxMagnitude(Double, Double)

2 つの倍精度浮動小数点数のうち、大きい絶対値を返します。

Min(Byte, Byte)

2 つの 8 ビット符号なし整数のうち、小さい方を返します。

Min(Decimal, Decimal)

2 つの 10 進数のうち、小さい方を返します。

Min(Double, Double)

2 つの倍精度浮動小数点数のうち、小さい方を返します。

Min(Int16, Int16)

2 つの 16 ビット符号付き整数のうち、小さい方を返します。

Min(Int32, Int32)

2 つの 32 ビット符号付き整数のうち、小さい方を返します。

Min(Int64, Int64)

2 つの 64 ビット符号付き整数のうち、小さい方を返します。

Min(IntPtr, IntPtr)

2 つのネイティブ符号付き整数のうち小さい方を返します。

Min(SByte, SByte)

2 つの 8 ビット符号付き整数のうち、小さい方を返します。

Min(Single, Single)

2 つの単精度浮動小数点数のうち、小さい方を返します。

Min(UInt16, UInt16)

2 つの 16 ビット符号なし整数のうち、小さい方を返します。

Min(UInt32, UInt32)

2 つの 32 ビット符号なし整数のうち、小さい方を返します。

Min(UInt64, UInt64)

2 つの 64 ビット符号なし整数のうち、小さい方を返します。

Min(UIntPtr, UIntPtr)

2 つのネイティブ符号なし整数のうち小さい方を返します。

MinMagnitude(Double, Double)

2 つの倍精度浮動小数点数のうち、小さい絶対値を返します。

Pow(Double, Double)

指定の数値を指定した値で累乗した値を返します。

ReciprocalEstimate(Double)

指定した数値の逆数の推定値を返します。

ReciprocalSqrtEstimate(Double)

指定した数値の逆平方根の推定値を返します。

Round(Decimal)

10 進数の値は最も近い整数値に丸められ、中間値は最も近い偶数値に丸められます。

Round(Decimal, Int32)

10 進数の値は指定した小数部の桁数に丸められ、中間値は最も近い偶数値に丸められます。

Round(Decimal, Int32, MidpointRounding)

指定した丸め規則を使用して、指定した小数部の桁数に 10 進値を丸めます。

Round(Decimal, MidpointRounding)

指定した丸め規則を使用して、10 進数の値を整数で丸めます。

Round(Double)

倍精度浮動小数点の値は最も近い整数値に丸められ、中間値は最も近い偶数値に丸められます。

Round(Double, Int32)

倍精度浮動小数点の値は指定した小数部の桁数に丸められ、中間値は最も近い偶数値に丸められます。

Round(Double, Int32, MidpointRounding)

指定した丸め規則を使用して、倍精度浮動小数点値を指定した小数部の桁数に丸めます。

Round(Double, MidpointRounding)

指定した丸め規則を使用して、倍精度浮動小数点値を整数に丸めます。

ScaleB(Double, Int32)

効率的に計算された x * 2^n を返します。

Sign(Decimal)

10 進数の符号を示す整数を返します。

Sign(Double)

倍精度浮動小数点数の符号を示す整数を返します。

Sign(Int16)

16 ビット符号付き整数の符号を示す整数を返します。

Sign(Int32)

32 ビット符号付き整数の符号を示す整数を返します。

Sign(Int64)

64 ビット符号付き整数の符号を示す正数を返します。

Sign(IntPtr)

ネイティブ サイズの符号付き整数の符号を示す整数を返します。

Sign(SByte)

8 ビット符号付き整数の符号を示す整数を返します。

Sign(Single)

単精度浮動小数点数の符号を示す値を返します。

Sin(Double)

指定された角度のサインを返します。

SinCos(Double)

指定した角度のサインとコサインを返します。

Sinh(Double)

指定された角度のハイパーボリック サインを返します。

Sqrt(Double)

指定された数値の平方根を返します。

Tan(Double)

指定された角度のタンジェントを返します。

Tanh(Double)

指定された角度のハイパーボリック タンジェントを返します。

Truncate(Decimal)

指定した 10 進数の整数部を計算します。

Truncate(Double)

指定した倍精度浮動小数点数の整数部を計算します。

適用対象