Math Class
Provides constants and static methods for trigonometric, logarithmic, and other common mathematical functions.
For a list of all members of this type, see Math Members.
System.Object
System.Math
[Visual Basic] NotInheritable Public Class Math [C#] public sealed class Math [C++] public __gc __sealed class Math [JScript] public class Math
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Example
The following code sample uses several mathematical and trigonometric functions from the Math class to calculate the inner angles of a trapezoid.
[Visual Basic] 'The following class represents simple functionallity 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 trpezoid'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 [C#] /// <summary> /// The following class represents simple functionallity of the Trapezoid /// </summary> 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 trpezoid'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"); } } [C++] /// <summary> /// The following class represents simple functionality of the Trapezoid /// </summary> public __gc 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 = new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0); Console::WriteLine(S"The trpezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0"); double h = trpz->GetHeight(); Console::WriteLine(S"Trapezoid height is: {0}", h.ToString()); double dxR = trpz->GetLeftBaseRadianAngle(); Console::WriteLine(S"Trapezoid left base angle is: {0} Radians", dxR.ToString()); double dyR = trpz->GetRightBaseRadianAngle(); Console::WriteLine(S"Trapezoid right base angle is: {0} Radians", dyR.ToString()); double dxD = trpz->GetLeftBaseDegreeAngle(); Console::WriteLine(S"Trapezoid left base angle is: {0} Degrees", dxD.ToString()); double dyD = trpz->GetRightBaseDegreeAngle(); Console::WriteLine(S"Trapezoid left base angle is: {0} Degrees", dyD.ToString()); }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
Assembly: Mscorlib (in Mscorlib.dll)