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

Представляет число радианов в полном обороте, заданное константой τ.

Методы

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)

Возвращает угол, тангенс которого равен отношению двух указанных чисел.

Atanh(Double)

Возвращает угол, гиперболический тангенс которого равен указанному числу.

BigMul(Int32, Int32)

Умножает два 32-битовых числа.

BigMul(Int64, Int64, Int64)

Формирует полное произведение двух 64-битовых чисел.

BigMul(UInt64, UInt64, UInt64)

Формирует полное произведение двух 64-битовых чисел без знака.

BitDecrement(Double)

Возвращает наибольшее значение, которое сравнивает меньше указанного значения.

BitIncrement(Double)

Возвращает наименьшее значение, которое сравнивает больше указанного значения.

Cbrt(Double)

Возвращает кубический корень из указанного числа.

Ceiling(Decimal)

Возвращает наименьшее целое число, которое больше или равно заданному десятичному числу.

Ceiling(Double)

Возвращает наименьшее целое число, которое больше или равно заданному числу с плавающей запятой двойной точности.

Clamp(Byte, Byte, Byte)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(Decimal, Decimal, Decimal)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(Double, Double, Double)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(Int16, Int16, Int16)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(Int32, Int32, Int32)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(Int64, Int64, Int64)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(IntPtr, IntPtr, IntPtr)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(SByte, SByte, SByte)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(Single, Single, Single)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(UInt16, UInt16, UInt16)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(UInt32, UInt32, UInt32)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(UInt64, UInt64, UInt64)

Возвращает value, ограниченное диапазоном от min до max включительно.

Clamp(UIntPtr, UIntPtr, UIntPtr)

Возвращает value, ограниченное диапазоном от min до max включительно.

CopySign(Double, Double)

Возвращает значение с величиной x и знаком y.

Cos(Double)

Возвращает косинус указанного угла.

Cosh(Double)

Возвращает гиперболический косинус указанного угла.

DivRem(Byte, Byte)

Создает частное и оставшуюся часть двух 8-разрядных чисел без знака.

DivRem(Int16, Int16)

Создает частное и оставшуюся часть двух 16-разрядных чисел со знаком.

DivRem(Int32, Int32)

Создает частное и оставшуюся часть двух 32-разрядных чисел со знаком.

DivRem(Int32, Int32, Int32)

Вычисляет частное двух 32-разрядных знаковых целых чисел и возвращает остаток в выходном параметре.

DivRem(Int64, Int64)

Создает частное и оставшееся число двух 64-разрядных чисел со знаком.

DivRem(Int64, Int64, Int64)

Вычисляет частное двух 64-битовых целых чисел со знаком и возвращает остаток в выходном параметре.

DivRem(IntPtr, IntPtr)

Создает частное и оставшееся количество двух подписанных чисел собственного размера.

DivRem(SByte, SByte)

Создает частное и оставшуюся часть двух 8-разрядных чисел со знаком.

DivRem(UInt16, UInt16)

Создает частное и оставшуюся часть двух 16-разрядных чисел без знака.

DivRem(UInt32, UInt32)

Создает частное и оставшуюся часть двух 32-разрядных чисел без знака.

DivRem(UInt64, UInt64)

Создает частное и оставшуюся часть двух 64-разрядных чисел без знака.

DivRem(UIntPtr, UIntPtr)

Создает частное и оставшееся число двух неподписанных чисел собственного размера.

Exp(Double)

Возвращает e, возведенное в указанную степень.

Floor(Decimal)

Возвращает наибольшее целое число, которое меньше или равно указанному десятичному числу.

Floor(Double)

Возвращает наибольшее целое число, которое меньше или равно заданному числу с плавающей запятой двойной точности.

FusedMultiplyAdd(Double, Double, Double)

Возвращает значение (x * y) + z, округленное в рамках одной тернарной операции.

IEEERemainder(Double, Double)

Возвращает остаток от деления одного указанного числа на другое указанное число.

ILogB(Double)

Возвращает целочисленный логарифм с основанием 2 указанного числа.

Log(Double)

Возвращает натуральный логарифм (с основанием e) указанного числа.

Log(Double, Double)

Возвращает логарифм указанного числа в системе счисления с указанным основанием.

Log10(Double)

Возвращает логарифм с основанием 10 указанного числа.

Log2(Double)

Возвращает логарифм с основанием 2 указанного числа.

Max(Byte, Byte)

Возвращает большее из двух 8-битовых целых чисел без знака.

Max(Decimal, Decimal)

Возвращает большее из двух десятичных чисел.

Max(Double, Double)

Возвращает большее из двух чисел двойной точности с плавающей запятой.

Max(Int16, Int16)

Возвращает большее из двух 16-битовых целых чисел со знаком.

Max(Int32, Int32)

Возвращает большее из двух 32-битовых целых чисел со знаком.

Max(Int64, Int64)

Возвращает большее из двух 64-битовых целых чисел со знаком.

Max(IntPtr, IntPtr)

Возвращает большее из двух собственных целых чисел со знаком.

Max(SByte, SByte)

Возвращает большее из двух 8-битовых целых чисел со знаком.

Max(Single, Single)

Возвращает большее из двух чисел одинарной точности с плавающей запятой.

Max(UInt16, UInt16)

Возвращает большее из двух 16-битовых целых чисел без знака.

Max(UInt32, UInt32)

Возвращает большее из двух 32-битовых целых чисел без знака.

Max(UInt64, UInt64)

Возвращает большее из двух 64-битовых целых чисел без знака.

Max(UIntPtr, UIntPtr)

Возвращает большее из двух собственных целых чисел без знака.

MaxMagnitude(Double, Double)

Возвращает большую величину из двух чисел двойной точности с плавающей запятой.

Min(Byte, Byte)

Возвращает меньшее из двух 8-битовых целых чисел без знака.

Min(Decimal, Decimal)

Возвращает меньшее из двух десятичных чисел.

Min(Double, Double)

Возвращает меньшее из двух чисел двойной точности с плавающей запятой.

Min(Int16, Int16)

Возвращает меньшее из двух 16-битовых целых чисел со знаком.

Min(Int32, Int32)

Возвращает меньшее из двух 32-битовых целых чисел со знаком.

Min(Int64, Int64)

Возвращает меньшее из двух 64-битовых целых чисел со знаком.

Min(IntPtr, IntPtr)

Возвращает меньшее из двух собственных целых чисел со знаком.

Min(SByte, SByte)

Возвращает меньшее из двух 8-битовых целых чисел со знаком.

Min(Single, Single)

Возвращает меньшее из двух чисел одинарной точности с плавающей запятой.

Min(UInt16, UInt16)

Возвращает меньшее из двух 16-битовых целых чисел без знака.

Min(UInt32, UInt32)

Возвращает меньшее из двух 32-битовых целых чисел без знака.

Min(UInt64, UInt64)

Возвращает меньшее из двух 64-битовых целых чисел без знака.

Min(UIntPtr, UIntPtr)

Возвращает меньшее из двух собственных целых чисел без знака.

MinMagnitude(Double, Double)

Возвращает меньшую величину из двух чисел двойной точности с плавающей запятой.

Pow(Double, Double)

Возвращает указанное число, возведенное в указанную степень.

ReciprocalEstimate(Double)

Возвращает оценку обратной величины указанного числа.

ReciprocalSqrtEstimate(Double)

Возвращает оценку обратного квадратного корня указанного числа.

Round(Decimal)

Округляет десятичное значение до ближайшего целого значения; значения посередине округляются до ближайшего четного числа.

Round(Decimal, Int32)

Округляет десятичное значение до указанного числа знаков после запятой; значения посередине округляются до ближайшего четного числа.

Round(Decimal, Int32, MidpointRounding)

Округляет десятичное значение до указанного числа дробных цифр, используя указанное соглашение о округлении.

Round(Decimal, MidpointRounding)

Округляет десятичное значение на целое число, используя указанное соглашение об округлении.

Round(Double)

Округляет значение с плавающей запятой двойной точности до ближайшего целого значения; значения посередине округляются до ближайшего четного числа.

Round(Double, Int32)

Округляет значение с плавающей запятой двойной точности до указанного числа знаков после запятой; значения посередине округляются до ближайшего четного числа.

Round(Double, Int32, MidpointRounding)

Округляет значение двойной точности с плавающей запятой до указанного числа дробных цифр, используя указанное соглашение об округлении.

Round(Double, MidpointRounding)

Округляет значение двойной точности с плавающей запятой до целого числа, используя указанное соглашение об округлении.

ScaleB(Double, Int32)

Возвращает значение x * 2^n, вычисленное эффективно.

Sign(Decimal)

Возвращает целое число, указывающее знак десятичного числа.

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)

Вычисляет целую часть заданного десятичного числа.

Truncate(Double)

Вычисляет целую часть заданного числа двойной точности с плавающей запятой.

Применяется к