Math Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Provides constants and static methods for trigonometric, logarithmic, and other common mathematical functions.
Inheritance Hierarchy
System..::.Object
System..::.Math
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
Public NotInheritable Class Math
public static class Math
The Math type exposes the following members.
Methods
Name | Description | |
---|---|---|
Abs(Decimal) | Returns the absolute value of a Decimal number. | |
Abs(Double) | Returns the absolute value of a double-precision floating-point number. | |
Abs(Int16) | Returns the absolute value of a 16-bit signed integer. | |
Abs(Int32) | Returns the absolute value of a 32-bit signed integer. | |
Abs(Int64) | Returns the absolute value of a 64-bit signed integer. | |
Abs(SByte) | Returns the absolute value of an 8-bit signed integer. | |
Abs(Single) | Returns the absolute value of a single-precision floating-point number. | |
Acos | Returns the angle whose cosine is the specified number. | |
Asin | Returns the angle whose sine is the specified number. | |
Atan | Returns the angle whose tangent is the specified number. | |
Atan2 | Returns the angle whose tangent is the quotient of two specified numbers. | |
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 greater than or equal to the specified double-precision floating-point number. | |
Cos | Returns the cosine of the specified angle. | |
Cosh | Returns the hyperbolic cosine of the specified angle. | |
Exp | Returns e raised to the specified power. | |
Floor(Decimal) | Returns the largest integer less than or equal to the specified decimal number. | |
Floor(Double) | Returns the largest integer less than or equal to the specified double-precision floating-point number. | |
IEEERemainder | Returns the remainder resulting from the division of a specified number by another specified number. | |
Log(Double) | 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 | Returns the base 10 logarithm of a specified number. | |
Max(Byte, Byte) | 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) | Returns the larger of two 16-bit signed integers. | |
Max(Int32, Int32) | Returns the larger of two 32-bit signed integers. | |
Max(Int64, Int64) | Returns the larger of two 64-bit signed integers. | |
Max(SByte, SByte) | 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) | Returns the larger of two 16-bit unsigned integers. | |
Max(UInt32, UInt32) | Returns the larger of two 32-bit unsigned integers. | |
Max(UInt64, UInt64) | Returns the larger of two 64-bit unsigned integers. | |
Min(Byte, Byte) | 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) | Returns the smaller of two 16-bit signed integers. | |
Min(Int32, Int32) | Returns the smaller of two 32-bit signed integers. | |
Min(Int64, Int64) | Returns the smaller of two 64-bit signed integers. | |
Min(SByte, SByte) | 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) | Returns the smaller of two 16-bit unsigned integers. | |
Min(UInt32, UInt32) | Returns the smaller of two 32-bit unsigned integers. | |
Min(UInt64, UInt64) | Returns the smaller of two 64-bit unsigned integers. | |
Pow | Returns a specified number raised to the specified power. | |
Round(Decimal) | Rounds a decimal value to the nearest integral value. | |
Round(Double) | Rounds a double-precision floating-point value to the nearest integral value. | |
Round(Decimal, Int32) | Rounds a decimal value to a specified number of fractional digits. | |
Round(Decimal, MidpointRounding) | Rounds a decimal value to the nearest integer. A parameter specifies how to round the value if it is midway between two other numbers. | |
Round(Double, Int32) | Rounds a double-precision floating-point value to a specified number of fractional digits. | |
Round(Double, MidpointRounding) | Rounds a double-precision floating-point value to the nearest integer. A parameter specifies how to round the value if it is midway between two other numbers. | |
Round(Decimal, Int32, MidpointRounding) | Rounds a decimal value to a specified number of fractional digits. A parameter specifies how to round the value if it is midway between two other numbers. | |
Round(Double, Int32, MidpointRounding) | Rounds a double-precision floating-point value to the specified number of fractional digits. A parameter specifies how to round the value if it is midway between two other numbers. | |
Sign(Decimal) | Returns a value indicating the sign of a decimal number. | |
Sign(Double) | Returns a value indicating the sign of a double-precision floating-point number. | |
Sign(Int16) | Returns a value indicating the sign of a 16-bit signed integer. | |
Sign(Int32) | Returns a value indicating the sign of a 32-bit signed integer. | |
Sign(Int64) | Returns a value indicating the sign of a 64-bit signed integer. | |
Sign(SByte) | Returns a value indicating the sign of an 8-bit signed integer. | |
Sign(Single) | Returns a value indicating the sign of a single-precision floating-point number. | |
Sin | Returns the sine of the specified angle. | |
Sinh | Returns the hyperbolic sine of the specified angle. | |
Sqrt | Returns the square root of a specified number. | |
Tan | Returns the tangent of the specified angle. | |
Tanh | 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. |
Top
Fields
Name | Description | |
---|---|---|
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, π. |
Top
Examples
The following code sample uses several mathematical and trigonometric functions from the Math class to calculate the inner angles of a trapezoid.
'The following class represents simple functionality of the trapezoid.
Class Example
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 Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim trpz As Example = New Example(20, 10, 8, 6)
outputBlock.Text += String.Format("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0") & vbCrLf
Dim h As Double = trpz.GetHeight()
outputBlock.Text &= "Trapezoid height is: " + h.ToString() & vbCrLf
Dim dxR As Double = trpz.GetLeftBaseRadianAngle()
outputBlock.Text &= "Trapezoid left base angle is: " + dxR.ToString() + " Radians" & vbCrLf
Dim dyR As Double = trpz.GetRightBaseRadianAngle()
outputBlock.Text &= "Trapezoid right base angle is: " + dyR.ToString() + " Radians" & vbCrLf
Dim dxD As Double = trpz.GetLeftBaseDegreeAngle()
outputBlock.Text &= "Trapezoid left base angle is: " + dxD.ToString() + " Degrees" & vbCrLf
Dim dyD As Double = trpz.GetRightBaseDegreeAngle()
outputBlock.Text &= "Trapezoid left base angle is: " + dyD.ToString() + " Degrees" & vbCrLf
End Sub
End Class
/// <summary>
/// The following class represents simple functionality of the trapezoid.
/// </summary>
class Example
{
private double m_longBase;
private double m_shortBase;
private double m_leftLeg;
private double m_rightLeg;
public Example(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);
}
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
Example trpz = new Example(20.0, 10.0, 8.0, 6.0);
outputBlock.Text += String.Format("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0") + "\n";
double h = trpz.GetHeight();
outputBlock.Text += "Trapezoid height is: " + h.ToString() + "\n";
double dxR = trpz.GetLeftBaseRadianAngle();
outputBlock.Text += "Trapezoid left base angle is: " + dxR.ToString() + " Radians" + "\n";
double dyR = trpz.GetRightBaseRadianAngle();
outputBlock.Text += "Trapezoid right base angle is: " + dyR.ToString() + " Radians" + "\n";
double dxD = trpz.GetLeftBaseDegreeAngle();
outputBlock.Text += "Trapezoid left base angle is: " + dxD.ToString() + " Degrees" + "\n";
double dyD = trpz.GetRightBaseDegreeAngle();
outputBlock.Text += "Trapezoid left base angle is: " + dyD.ToString() + " Degrees" + "\n";
}
}
Version Information
Windows Phone OS
Supported in: 8.1, 8.0, 7.1, 7.0
Platforms
Windows Phone
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.