# 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");
}
}
}
``````
``````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` 指定。 表示圆的周长与其直径的比值，由常数 π 指定。 表示一转中的弧度数，由常量 τ 指定。

## 方法

 返回 Decimal 数字的绝对值。 返回双精度浮点数字的绝对值。 返回 16 位有符号整数的绝对值。 返回 32 位有符号整数的绝对值。 返回 64 位有符号整数的绝对值。 返回本机带符号整数的绝对值。 返回 8 位有符号整数的绝对值。 返回单精度浮点数字的绝对值。 返回余弦值为指定数字的角度。 返回双曲余弦值为指定数字的角度。 返回正弦值为指定数字的角度。 返回双曲正弦值为指定数字的角度。 返回正切值为指定数字的角度。 返回正切值为两个指定数字的商的角度。 返回双曲正切值为指定数字的角度。 生成两个 32 位数字的完整乘积。 生成两个 64 位数的完整乘积。 生成两个无符号 64 位数的完整乘积。 返回比较小于指定值的最大值。 返回与指定值相比较的最小值。 返回指定数字的立方根。 返回大于或等于指定的十进制数的最小整数值。 返回大于或等于指定的双精度浮点数的最小整数值。 返回限制在 `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` 的符号。 返回指定角度的余弦值。 返回指定角度的双曲余弦值。 生成两个无符号 8 位数字的商和其余部分。 生成两个 16 位有符号数字的商和其余部分。 生成两个有符号 32 位数字的商和其余部分。 计算两个 32 位有符号整数的商，并通过输出参数返回余数。 生成两个有符号 64 位数字的商和其余部分。 计算两个 64 位有符号整数的商，并通过输出参数返回余数。 生成两个有符号本机大小数字的商和其余部分。 生成两个有符号 8 位数字的商和其余部分。 生成两个无符号 16 位数字的商和其余部分。 生成两个无符号 32 位数字的商和其余部分。 生成两个无符号 64 位数字的商和其余部分。 生成两个无符号本机大小数字的商和其余部分。 返回 `e` 的指定次幂。 返回小于或等于指定小数的最大整数值。 返回小于或等于指定双精度浮点数的最大整数值。 返回 (x * y) + z，舍入为一个三元运算。 返回一指定数字被另一指定数字相除的余数。 返回指定数字以 2 为底的整数对数。 返回指定数字的自然对数（底为 `e`）。 返回指定数字在使用指定底时的对数。 返回指定数字以 10 为底的对数。 返回指定数字以 2 为底的对数。 返回两个 8 位无符号整数中较大的一个。 返回两个十进制数中较大的一个。 返回两个双精度浮点数字中较大的一个。 返回两个 16 位有符号的整数中较大的一个。 返回两个 32 位有符号的整数中较大的一个。 返回两个 64 位有符号的整数中较大的一个。 返回两个本机带符号整数中的较大值。 返回两个 8 位有符号的整数中较大的一个。 返回两个单精度浮点数字中较大的一个。 返回两个 16 位无符号整数中较大的一个。 返回两个 32 位无符号整数中较大的一个。 返回两个 64 位无符号整数中较大的一个。 返回两个本机无符号整数中的较大值。 返回两个双精度浮点数字中的较大值。 返回两个 8 位无符号整数中较小的一个。 返回两个十进制数中较小的一个。 返回两个双精度浮点数字中较小的一个。 返回两个 16 位有符号整数中较小的一个。 返回两个 32 位有符号整数中较小的一个。 返回两个 64 位有符号整数中较小的一个。 返回两个本机带符号整数中的较小值。 返回两个 8 位有符号整数中较小的一个。 返回两个单精度浮点数字中较小的一个。 返回两个 16 位无符号整数中较小的一个。 返回两个 32 位无符号整数中较小的一个。 返回两个 64 位无符号整数中较小的一个。 返回两个本机无符号整数中的较小值。 返回两个双精度浮点数字中的较小值。 返回指定数字的指定次幂。 返回指定数字的倒数估计值。 返回指定数字的倒数平方根的估计值。 将小数值舍入到最接近的整数值，并将中点值舍入到最接近的偶数。 将小数值舍入到指定数量的小数位，并将中点值舍入到最接近的偶数。 使用指定的舍入约定将十进制值舍入到指定数量的小数位数。 使用指定的舍入约定将小数值舍入为整数。 将双精度浮点值舍入到最接近的整数值，并将中点值舍入到最接近的偶数。 将双精度浮点值舍入到指定数量的小数位，并将中点值舍入到最接近的偶数。 使用指定的舍入约定将双精度浮点值舍入到指定数量的小数位数。 使用指定的舍入约定将双精度浮点值舍入为整数。 返回有效计算的 x * 2^n。 返回表示十进制数符号的整数。 返回一个整数，该整数表示双精度浮点数字的符号。 返回表示 16 位带符号整数的整数。 返回表示 32 位带符号整数的整数。 返回一个整数，该整数指示 64 位带符号整数的符号。 返回一个整数，指示本机大小有符号整数的符号。 返回一个整数，该整数指示 8 位带符号整数的符号。 返回一个整数，该整数表示单精度浮点数字的符号。 返回指定角度的正弦值。 返回指定角度的正弦值和余弦值。 返回指定角度的双曲正弦值。 返回指定数字的平方根。 返回指定角度的正切值。 返回指定角度的双曲正切值。 计算一个数字的整数部分。 计算指定双精度浮点数的整数部分。