# Math Classe

## Definizione

Vengono forniti costanti e metodi statici per eseguire funzioni trigonometriche, logaritmiche e normali funzioni matematiche.Provides constants and static methods for trigonometric, logarithmic, and other common mathematical functions.

``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``
Ereditarietà
Math

## Esempio

Nell'esempio seguente vengono usate diverse funzioni matematiche e trigonometriche della Math classe per calcolare gli angoli interni di un trapezio.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 sinX = GetHeight() / m_leftLeg;
return Math::Round( Math::Asin( sinX ), 2 );
}

{
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() );
Console::WriteLine( "Trapezoid left base angle is: {0} Radians", dxR.ToString() );
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;
}

{
double sinX = GetHeight()/m_leftLeg;
return Math.Round(Math.Asin(sinX),2);
}

{
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());
Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians");
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

Dim sinX As Double = GetHeight() / m_leftLeg
End Function

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)
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
``````

## Campi

 Rappresenta la base logaritmica naturale, specificata dalla costante, `e`.Represents the natural logarithmic base, specified by the constant, `e`. Rappresenta il rapporto tra la circonferenza del cerchio e il relativo diametro, specificato dalla costante π.Represents the ratio of the circumference of a circle to its diameter, specified by the constant, π. Rappresenta il numero di radianti in un angolo giro, specificati dalla costante τ.Represents the number of radians in one turn, specified by the constant, τ.

## Metodi

 Restituisce il valore assoluto di un numero Decimal.Returns the absolute value of a Decimal number. Restituisce il valore assoluto di un numero a virgola mobile e precisione doppia.Returns the absolute value of a double-precision floating-point number. Restituisce il valore assoluto di un intero con segno a 16 bit.Returns the absolute value of a 16-bit signed integer. Restituisce il valore assoluto di un intero con segno a 32 bit.Returns the absolute value of a 32-bit signed integer. Restituisce il valore assoluto di un intero con segno a 64 bit.Returns the absolute value of a 64-bit signed integer. Restituisce il valore assoluto di un intero con segno a 8 bit.Returns the absolute value of an 8-bit signed integer. Restituisce il valore assoluto di un numero a virgola mobile e precisione singola.Returns the absolute value of a single-precision floating-point number. Restituisce l'angolo il cui coseno è il numero specificato.Returns the angle whose cosine is the specified number. Restituisce l'angolo il cui coseno iperbolico è il numero specificato.Returns the angle whose hyperbolic cosine is the specified number. Restituisce l'angolo il cui seno è il numero specificato.Returns the angle whose sine is the specified number. Restituisce l'angolo il cui seno iperbolico è il numero specificato.Returns the angle whose hyperbolic sine is the specified number. Restituisce l'angolo la cui tangente è il numero specificato.Returns the angle whose tangent is the specified number. Restituisce l'angolo la cui tangente è il quoziente di due numeri specificati.Returns the angle whose tangent is the quotient of two specified numbers. Restituisce l'angolo la cui tangente iperbolica è il numero specificato.Returns the angle whose hyperbolic tangent is the specified number. Restituisce il prodotto completo di due numeri a 32 bit.Produces the full product of two 32-bit numbers. Restituisce il prodotto completo di due numeri a 64 bit.Produces the full product of two 64-bit numbers. Restituisce il prodotto completo di due numeri a 64 bit senza segno.Produces the full product of two unsigned 64-bit numbers. Restituisce il successivo valore più piccolo che risulta minore di `x`.Returns the next smallest value that compares less than `x`. Restituisce il successivo valore più grande che risulta maggiore di `x`.Returns the next largest value that compares greater than `x`. Restituisce la radice cubica di un numero specificato.Returns the cube root of a specified number. Restituisce il valore integrale minimo maggiore o uguale al numero decimale specificato.Returns the smallest integral value that is greater than or equal to the specified decimal number. Restituisce il valore integrale minimo maggiore del o uguale al numero a virgola mobile e con precisione doppia specificato.Returns the smallest integral value that is greater than or equal to the specified double-precision floating-point number. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`.Returns `value` clamped to the inclusive range of `min` and `max`. Restituisce un valore con grandezza pari a `x` e segno `y`.Returns a value with the magnitude of `x` and the sign of `y`. Restituisce il coseno dell'angolo specificato.Returns the cosine of the specified angle. Restituisce il coseno iperbolico dell'angolo specificato.Returns the hyperbolic cosine of the specified angle. Calcola il quoziente di due interi con segno a 32 bit e restituisce il resto come parametro di output.Calculates the quotient of two 32-bit signed integers and also returns the remainder in an output parameter. Calcola il quoziente di due interi con segno a 64 bit e restituisce il resto come parametro di output.Calculates the quotient of two 64-bit signed integers and also returns the remainder in an output parameter. Restituisce `e` elevato alla potenza specificata.Returns `e` raised to the specified power. Restituisce il valore integrale massimo minore o uguale al numero decimale specificato.Returns the largest integral value less than or equal to the specified decimal number. Restituisce il valore integrale massimo minore o uguale al numero a virgola mobile a precisione doppia specificato.Returns the largest integral value less than or equal to the specified double-precision floating-point number. Restituisce (x * y) + z, arrotondato come unica operazione ternaria.Returns (x * y) + z, rounded as one ternary operation. Restituisce il resto della divisione tra il numero specificato e un altro numero specificato.Returns the remainder resulting from the division of a specified number by another specified number. Restituisce la parte intera del logaritmo in base 2 del numero specificato.Returns the base 2 integer logarithm of a specified number. Restituisce il logaritmo naturale (in base `e`) di un numero specificato.Returns the natural (base `e`) logarithm of a specified number. Restituisce il logaritmo del numero specificato in una base specificata.Returns the logarithm of a specified number in a specified base. Restituisce il logaritmo in base 10 del numero specificato.Returns the base 10 logarithm of a specified number. Restituisce il logaritmo in base 2 di un numero specificato.Returns the base 2 logarithm of a specified number. Restituisce il più elevato tra due interi senza segno a 8 bit.Returns the larger of two 8-bit unsigned integers. Restituisce il più elevato tra due numeri decimali.Returns the larger of two decimal numbers. Restituisce il più elevato tra due numeri a virgola mobile e precisione doppia.Returns the larger of two double-precision floating-point numbers. Restituisce il più elevato tra due interi con segno a 16 bit.Returns the larger of two 16-bit signed integers. Restituisce il più elevato tra due interi con segno a 32 bit.Returns the larger of two 32-bit signed integers. Restituisce il più elevato tra due interi con segno a 64 bit.Returns the larger of two 64-bit signed integers. Restituisce il più elevato tra due interi con segno a 8 bit.Returns the larger of two 8-bit signed integers. Restituisce il più elevato tra due numeri a virgola mobile e precisione singola.Returns the larger of two single-precision floating-point numbers. Restituisce il più elevato tra due interi senza segno a 16 bit.Returns the larger of two 16-bit unsigned integers. Restituisce il più elevato tra due interi senza segno a 32 bit.Returns the larger of two 32-bit unsigned integers. Restituisce il più elevato tra due interi senza segno a 64 bit.Returns the larger of two 64-bit unsigned integers. Restituisce la grandezza più elevata tra due numeri a virgola mobile e precisione doppia.Returns the larger magnitude of two double-precision floating-point numbers. Restituisce il meno elevato tra due interi senza segno a 8 bit.Returns the smaller of two 8-bit unsigned integers. Restituisce il meno elevato tra due numeri decimali.Returns the smaller of two decimal numbers. Restituisce il meno elevato tra due numeri a virgola mobile e precisione doppia.Returns the smaller of two double-precision floating-point numbers. Restituisce il meno elevato tra due interi con segno a 16 bit.Returns the smaller of two 16-bit signed integers. Restituisce il meno elevato tra due interi con segno a 32 bit.Returns the smaller of two 32-bit signed integers. Restituisce il meno elevato tra due interi con segno a 64 bit.Returns the smaller of two 64-bit signed integers. Restituisce il meno elevato tra due interi con segno a 8 bit.Returns the smaller of two 8-bit signed integers. Restituisce il meno elevato tra due numeri a virgola mobile e precisione singola.Returns the smaller of two single-precision floating-point numbers. Restituisce il meno elevato tra due interi senza segno a 16 bit.Returns the smaller of two 16-bit unsigned integers. Restituisce il meno elevato tra due interi senza segno a 32 bit.Returns the smaller of two 32-bit unsigned integers. Restituisce il meno elevato tra due interi senza segno a 64 bit.Returns the smaller of two 64-bit unsigned integers. Restituisce la grandezza meno elevata tra due numeri a virgola mobile e precisione doppia.Returns the smaller magnitude of two double-precision floating-point numbers. Restituisce il numero specificato elevato alla potenza specificata.Returns a specified number raised to the specified power. Arrotonda un valore decimale al valore integrale più vicino e arrotonda i valori che si trovano a metà tra due numeri al numero pari più vicino.Rounds a decimal value to the nearest integral value, and rounds midpoint values to the nearest even number. Arrotonda un valore decimale del numero di cifre frazionarie specificato e arrotonda i valori che si trovano a metà tra due numeri al numero pari più vicino.Rounds a decimal value to a specified number of fractional digits, and rounds midpoint values to the nearest even number. Arrotonda un valore decimale del numero di cifre frazionarie specificato e usa la convenzione di arrotondamento specificata per i valori che si trovano a metà tra due numeri.Rounds a decimal value to a specified number of fractional digits, and uses the specified rounding convention for midpoint values. Arrotonda un valore decimale all'intero più vicino e usa la convenzione di arrotondamento specificata per i valori che si trovano a metà tra due numeri.Rounds a decimal value to the nearest integer, and uses the specified rounding convention for midpoint values. Arrotonda un valore a virgola mobile e precisione doppia al valore integrale più vicino e arrotonda i valori che si trovano a metà tra due numeri al numero pari più vicino.Rounds a double-precision floating-point value to the nearest integral value, and rounds midpoint values to the nearest even number. Arrotonda un valore a virgola mobile e precisione doppia del numero di cifre frazionarie specificato e arrotonda i valori che si trovano a metà tra due numeri al numero pari più vicino.Rounds a double-precision floating-point value to a specified number of fractional digits, and rounds midpoint values to the nearest even number. Arrotonda un valore a virgola mobile e precisione doppia del numero di cifre frazionarie specificato e usa la convenzione di arrotondamento specificata per i valori che si trovano a metà tra due numeri.Rounds a double-precision floating-point value to a specified number of fractional digits, and uses the specified rounding convention for midpoint values. Arrotonda un valore a virgola mobile e precisione doppia all'intero più vicino e usa la convenzione di arrotondamento specificata per i valori che si trovano a metà tra due numeri.Rounds a double-precision floating-point value to the nearest integer, and uses the specified rounding convention for midpoint values. Restituisce x * 2^n calcolato in modo efficiente.Returns x * 2^n computed efficiently. Restituisce un intero che indica il segno di un numero decimale.Returns an integer that indicates the sign of a decimal number. Restituisce un intero che indica il segno di un numero a virgola mobile e a precisione doppia.Returns an integer that indicates the sign of a double-precision floating-point number. Restituisce un intero che indica il segno di un intero con firma a 16 bit.Returns an integer that indicates the sign of a 16-bit signed integer. Restituisce un intero che indica il segno di un intero con segno a 32 bit.Returns an integer that indicates the sign of a 32-bit signed integer. Restituisce un intero che indica il segno di un intero con segno a 64 bit.Returns an integer that indicates the sign of a 64-bit signed integer. Restituisce un intero che indica il segno di un intero con segno a 8 bit.Returns an integer that indicates the sign of an 8-bit signed integer. Restituisce un intero che indica il segno di un numero a virgola mobile e a precisione singola.Returns an integer that indicates the sign of a single-precision floating-point number. Restituisce il seno dell'angolo specificato.Returns the sine of the specified angle. Restituisce il seno iperbolico dell'angolo specificato.Returns the hyperbolic sine of the specified angle. Restituisce la radice quadrata del numero specificato.Returns the square root of a specified number. Restituisce la tangente dell'angolo specificato.Returns the tangent of the specified angle. Restituisce la tangente iperbolica dell'angolo specificato.Returns the hyperbolic tangent of the specified angle. Calcola la parte integrale di un numero decimale specificato.Calculates the integral part of a specified decimal number. Calcola la parte integrale di un numero a virgola mobile e precisione doppia specificato.Calculates the integral part of a specified double-precision floating-point number.