次の方法で共有


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)

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

BigMul(Int64, Int64, Int64)

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

BigMul(UInt32, UInt32)

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

BigMul(UInt64, UInt64)

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

BigMul(UInt64, UInt64, UInt64)

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

BitDecrement(Double)

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

BitIncrement(Double)

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

Cbrt(Double)

指定した数値のキューブ ルートを返します。

Ceiling(Decimal)

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

Ceiling(Double)

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

Clamp(Byte, Byte, Byte)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(Decimal, Decimal, Decimal)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(Double, Double, Double)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(Int16, Int16, Int16)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(Int32, Int32, Int32)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(Int64, Int64, Int64)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(IntPtr, IntPtr, IntPtr)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(SByte, SByte, SByte)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(Single, Single, Single)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(UInt16, UInt16, UInt16)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(UInt32, UInt32, UInt32)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(UInt64, UInt64, UInt64)

minmaxの包括的な範囲にクランプされた value を返します。

Clamp(UIntPtr, UIntPtr, UIntPtr)

minmaxの包括的な範囲にクランプされた 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)

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

適用対象