Math 類別

定義

提供三角函數、對數函數和其他一般數學函數的常數和靜態方法。Provides constants and static methods for trigonometric, logarithmic, and other common mathematical functions.

public ref class Math abstract sealed
public static class Math
type Math = class
Public Class Math
繼承
Math

範例

下列範例會使用Math類別中的數個數學和三角函數來計算梯形的內部角度。The following example uses several mathematical and trigonometric functions from the Math class to calculate the inner angles of a trapezoid.

/// <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

代表自然對數底數,由常數 e 指定。Represents the natural logarithmic base, specified by the constant, e.

PI

代表圓周率,由常數 π 指定。Represents the ratio of the circumference of a circle to its diameter, specified by the constant, π.

方法

Abs(Decimal)

傳回 Decimal 數字的絕對值。Returns the absolute value of a Decimal number.

Abs(Double)

傳回雙精確度浮點數的絕對值。Returns the absolute value of a double-precision floating-point number.

Abs(Int16)

傳回 16 位元帶正負號整數的絕對值。Returns the absolute value of a 16-bit signed integer.

Abs(Int32)

傳回 32 位元帶正負號整數的絕對值。Returns the absolute value of a 32-bit signed integer.

Abs(Int64)

傳回 64 位元帶正負號整數的絕對值。Returns the absolute value of a 64-bit signed integer.

Abs(SByte)

傳回 8 位元帶正負號整數的絕對值。Returns the absolute value of an 8-bit signed integer.

Abs(Single)

傳回單精確度浮點數的絕對值。Returns the absolute value of a single-precision floating-point number.

Acos(Double)

傳回餘弦函數 (Cosine) 是指定數字的角。Returns the angle whose cosine is the specified number.

Acosh(Double)

傳回雙曲線餘弦函數是指定數字的角。Returns the angle whose hyperbolic cosine is the specified number.

Asin(Double)

傳回正弦函數 (Sine) 是指定數字的角。Returns the angle whose sine is the specified number.

Asinh(Double)

傳回雙曲線正弦函數是指定數字的角。Returns the angle whose hyperbolic sine is the specified number.

Atan(Double)

傳回正切函數 (Tangent) 是指定數字的角。Returns the angle whose tangent is the specified number.

Atan2(Double, Double)

傳回正切函數是兩個指定數字之商數的角。Returns the angle whose tangent is the quotient of two specified numbers.

Atanh(Double)

傳回雙曲線正弦函數是指定數字的角。Returns the angle whose hyperbolic tangent is the specified number.

BigMul(Int32, Int32)

產生兩個 32 位元數字的完整產品。Produces the full product of two 32-bit numbers.

BitDecrement(Double)

傳回下一個比 x 小的最小值。Returns the next smallest value that compares less than x.

BitIncrement(Double)

傳回下一個比 x 大的最大值。Returns the next largest value that compares greater than x.

Cbrt(Double)

傳回指定數字的立方根。Returns the cube root of a specified number.

Ceiling(Decimal)

傳回大於或等於指定之十進位數字的最小整數值。Returns the smallest integral value that is greater than or equal to the specified decimal number.

Ceiling(Double)

傳回大於或等於指定之雙精確度浮點數的最小整數值。Returns the smallest integral value that is greater than or equal to the specified double-precision floating-point number.

Clamp(Byte, Byte, Byte)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(Decimal, Decimal, Decimal)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(Double, Double, Double)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(Int16, Int16, Int16)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(Int32, Int32, Int32)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(Int64, Int64, Int64)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(SByte, SByte, SByte)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(Single, Single, Single)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(UInt16, UInt16, UInt16)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(UInt32, UInt32, UInt32)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

Clamp(UInt64, UInt64, UInt64)

傳回限制為 minmax 內含範圍的 valueReturns value clamped to the inclusive range of min and max.

CopySign(Double, Double)

傳回量級為 x 且符號為 y 的值。Returns a value with the magnitude of x and the sign of y.

Cos(Double)

傳回指定角的餘弦函數。Returns the cosine of the specified angle.

Cosh(Double)

傳回指定角的雙曲線餘弦函數。Returns the hyperbolic cosine of the specified angle.

DivRem(Int32, Int32, Int32)

計算兩個 32 位元帶正負號的整數商數,並傳回餘數做為輸出參數。Calculates the quotient of two 32-bit signed integers and also returns the remainder in an output parameter.

DivRem(Int64, Int64, Int64)

計算兩個 64 位元帶正負號的整數商數,並傳回餘數做為輸出參數。Calculates the quotient of two 64-bit signed integers and also returns the remainder in an output parameter.

Exp(Double)

傳回具有指定乘冪數的 eReturns e raised to the specified power.

Floor(Decimal)

傳回小於或等於指定十進位數字的最大整數值。Returns the largest integral value less than or equal to the specified decimal number.

Floor(Double)

傳回小於或等於指定雙精確度浮點數的最大整數值。Returns the largest integral value less than or equal to the specified double-precision floating-point number.

FusedMultiplyAdd(Double, Double, Double)

傳回 (x * y) + z,四捨五入為一個三元運算。Returns (x * y) + z, rounded as one ternary operation.

IEEERemainder(Double, Double)

傳回指定數字除以另一個指定數字所得的餘數。Returns the remainder resulting from the division of a specified number by another specified number.

ILogB(Double)

傳回以 2 為底數時指定數字的整數對數。Returns the base 2 integer logarithm of a specified number.

Log(Double)

傳回指定數字的自然 (底數為 e) 對數。Returns the natural (base e) logarithm of a specified number.

Log(Double, Double)

傳回指定底數中指定數字的對數。Returns the logarithm of a specified number in a specified base.

Log10(Double)

傳回指定數字的以 10 為底數的對數。Returns the base 10 logarithm of a specified number.

Log2(Double)

傳回以 2 為底數時指定數字的對數。Returns the base 2 logarithm of a specified number.

Max(Byte, Byte)

傳回兩個 8 位元不帶正負號整數中較大的一個。Returns the larger of two 8-bit unsigned integers.

Max(Decimal, Decimal)

傳回兩個十進位數字中較大的一個。Returns the larger of two decimal numbers.

Max(Double, Double)

傳回兩個雙精確度浮點數中較大的一個。Returns the larger of two double-precision floating-point numbers.

Max(Int16, Int16)

傳回兩個 16 位元帶正負號整數中較大的一個。Returns the larger of two 16-bit signed integers.

Max(Int32, Int32)

傳回兩個 32 位元帶正負號整數中較大的一個。Returns the larger of two 32-bit signed integers.

Max(Int64, Int64)

傳回兩個 64 位元帶正負號整數中較大的一個。Returns the larger of two 64-bit signed integers.

Max(SByte, SByte)

傳回兩個 8 位元帶正負號整數中較大的一個。Returns the larger of two 8-bit signed integers.

Max(Single, Single)

傳回兩個單精確度浮點數中較大的一個。Returns the larger of two single-precision floating-point numbers.

Max(UInt16, UInt16)

傳回兩個 16 位元不帶正負號整數中較大的一個。Returns the larger of two 16-bit unsigned integers.

Max(UInt32, UInt32)

傳回兩個 32 位元不帶正負號整數中較大的一個。Returns the larger of two 32-bit unsigned integers.

Max(UInt64, UInt64)

傳回兩個 64 位元不帶正負號整數中較大的一個。Returns the larger of two 64-bit unsigned integers.

MaxMagnitude(Double, Double)

傳回兩個雙精確度浮點數中較大的那個量級。Returns the larger magnitude of two double-precision floating-point numbers.

Min(Byte, Byte)

傳回兩個 8 位元不帶正負號整數中較小的一個。Returns the smaller of two 8-bit unsigned integers.

Min(Decimal, Decimal)

傳回兩個十進位數字中較小的一個。Returns the smaller of two decimal numbers.

Min(Double, Double)

傳回兩個雙精確度浮點數中較小的一個。Returns the smaller of two double-precision floating-point numbers.

Min(Int16, Int16)

傳回兩個 16 位元帶正負號整數中較小的一個。Returns the smaller of two 16-bit signed integers.

Min(Int32, Int32)

傳回兩個 32 位元帶正負號整數中較小的一個。Returns the smaller of two 32-bit signed integers.

Min(Int64, Int64)

傳回兩個 64 位元帶正負號整數中較小的一個。Returns the smaller of two 64-bit signed integers.

Min(SByte, SByte)

傳回兩個 8 位元帶正負號整數中較小的一個。Returns the smaller of two 8-bit signed integers.

Min(Single, Single)

傳回兩個單精確度浮點數中較小的一個。Returns the smaller of two single-precision floating-point numbers.

Min(UInt16, UInt16)

傳回兩個 16 位元不帶正負號整數中較小的一個。Returns the smaller of two 16-bit unsigned integers.

Min(UInt32, UInt32)

傳回兩個 32 位元不帶正負號整數中較小的一個。Returns the smaller of two 32-bit unsigned integers.

Min(UInt64, UInt64)

傳回兩個 64 位元不帶正負號整數中較小的一個。Returns the smaller of two 64-bit unsigned integers.

MinMagnitude(Double, Double)

傳回兩個雙精確度浮點數中較小的那個量級。Returns the smaller magnitude of two double-precision floating-point numbers.

Pow(Double, Double)

傳回具有指定乘冪數的指定數字。Returns a specified number raised to the specified power.

Round(Decimal)

將十進位值四捨五入到最接近的整數值,並將中間點值四捨五入到最接近的偶數。Rounds a decimal value to the nearest integral value, and rounds midpoint values to the nearest even number.

Round(Decimal, Int32)

將十進位值四捨五入到小數數字的指定數字,並將中間點值四捨五入到最接近的偶數。Rounds a decimal value to a specified number of fractional digits, and rounds midpoint values to the nearest even number.

Round(Decimal, Int32, MidpointRounding)

將十進位值四捨五入到小數數字的指定數字,並使用中間點值的指定進位慣例。Rounds a decimal value to a specified number of fractional digits, and uses the specified rounding convention for midpoint values.

Round(Decimal, MidpointRounding)

將十進位值四捨五入到最接近的整數,並使用中間點值的指定進位慣例。Rounds a decimal value to the nearest integer, and uses the specified rounding convention for midpoint values.

Round(Double)

將雙精確度浮點數值四捨五入到最接近的整數值,並將中間點值四捨五入到最接近的偶數。Rounds a double-precision floating-point value to the nearest integral value, and rounds midpoint values to the nearest even number.

Round(Double, Int32)

將雙精確度浮點數值四捨五入到小數數字的指定數字,並將中間點值四捨五入到最接近的偶數。Rounds a double-precision floating-point value to a specified number of fractional digits, and rounds midpoint values to the nearest even number.

Round(Double, Int32, MidpointRounding)

將雙精確度浮點數值四捨五入到小數數字的指定數字,並使用中間點值的指定進位慣例。Rounds a double-precision floating-point value to a specified number of fractional digits, and uses the specified rounding convention for midpoint values.

Round(Double, MidpointRounding)

將雙精確度浮點數值四捨五入到最接近的整數,並使用中間點值的指定進位慣例。Rounds a double-precision floating-point value to the nearest integer, and uses the specified rounding convention for midpoint values.

ScaleB(Double, Int32)

傳回有效率計算的 x * 2^n。Returns x * 2^n computed efficiently.

Sign(Decimal)

傳回整數,這個整數表示十進位數字的正負號。Returns an integer that indicates the sign of a decimal number.

Sign(Double)

傳回整數,表示雙精確度浮點數的正負號。Returns an integer that indicates the sign of a double-precision floating-point number.

Sign(Int16)

傳回整數,這個整數表示 16 位元帶正負號整數的正負號。Returns an integer that indicates the sign of a 16-bit signed integer.

Sign(Int32)

傳回整數,這個整數表示 32 位元帶正負號整數的正負號。Returns an integer that indicates the sign of a 32-bit signed integer.

Sign(Int64)

傳回整數,表示 64 位元帶正負號整數的正負號。Returns an integer that indicates the sign of a 64-bit signed integer.

Sign(SByte)

傳回整數,表示 8 位元帶正負號整數的正負號。Returns an integer that indicates the sign of an 8-bit signed integer.

Sign(Single)

傳回整數,表示單精確度浮點數的正負號。Returns an integer that indicates the sign of a single-precision floating-point number.

Sin(Double)

傳回指定角的正弦函數。Returns the sine of the specified angle.

Sinh(Double)

傳回指定角的雙曲線正弦函數。Returns the hyperbolic sine of the specified angle.

Sqrt(Double)

傳回指定數字的平方根。Returns the square root of a specified number.

Tan(Double)

傳回指定角的正切函數。Returns the tangent of the specified angle.

Tanh(Double)

傳回指定角的雙曲線正切函數。Returns the hyperbolic tangent of the specified angle.

Truncate(Decimal)

計算指定的十進位數字的整數部分。Calculates the integral part of a specified decimal number.

Truncate(Double)

計算指定的雙精確度浮點數的整數部分。Calculates the integral part of a specified double-precision floating-point number.

適用於