# Math Classe

## Definizione

Vengono forniti costanti e metodi statici per eseguire funzioni trigonometriche, logaritmiche e normali funzioni matematiche.

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

L'esempio seguente usa diverse funzioni matematiche e trigonometriche della classe per calcolare gli Math angoli interni di un tracutoide.

``````/// <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`. Rappresenta il rapporto tra la circonferenza del cerchio e il relativo diametro, specificato dalla costante π. Rappresenta il numero di radianti in un angolo giro, specificati dalla costante τ.

## Metodi

 Restituisce il valore assoluto di un numero Decimal. Restituisce il valore assoluto di un numero a virgola mobile e precisione doppia. Restituisce il valore assoluto di un intero con segno a 16 bit. Restituisce il valore assoluto di un intero con segno a 32 bit. Restituisce il valore assoluto di un intero con segno a 64 bit. Restituisce il valore assoluto di un intero con segno nativo. Restituisce il valore assoluto di un intero con segno a 8 bit. Restituisce il valore assoluto di un numero a virgola mobile e precisione singola. Restituisce l'angolo il cui coseno è il numero specificato. Restituisce l'angolo il cui coseno iperbolico è il numero specificato. Restituisce l'angolo il cui seno è il numero specificato. Restituisce l'angolo il cui seno iperbolico è il numero specificato. Restituisce l'angolo la cui tangente è il numero specificato. Restituisce l'angolo la cui tangente è il quoziente di due numeri specificati. Restituisce l'angolo la cui tangente iperbolica è il numero specificato. Restituisce il prodotto completo di due numeri a 32 bit. Restituisce il prodotto completo di due numeri a 64 bit. Restituisce il prodotto completo di due numeri a 64 bit senza segno. Restituisce il successivo valore più piccolo che risulta minore di `x`. Restituisce il successivo valore più grande che risulta maggiore di `x`. Restituisce la radice cubica di un numero specificato. Restituisce il valore integrale minimo maggiore o uguale al numero decimale specificato. Restituisce il valore integrale minimo maggiore del o uguale al numero a virgola mobile e con precisione doppia specificato. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce il valore `value` fissato all'intervallo inclusivo di `min` e `max`. Restituisce un valore con grandezza pari a `x` e segno `y`. Restituisce il coseno dell'angolo specificato. Restituisce il coseno iperbolico dell'angolo specificato. Produce il quoziente e il resto di due numeri a 8 bit senza segno. Produce il quoziente e il resto di due numeri a 16 bit con segno. Produce il quoziente e il resto di due numeri a 32 bit con segno. Calcola il quoziente di due interi con segno a 32 bit e restituisce il resto come parametro di output. Produce il quoziente e il resto di due numeri a 64 bit con segno. Calcola il quoziente di due interi con segno a 64 bit e restituisce il resto come parametro di output. Produce il quoziente e il resto di due numeri di dimensioni native firmati. Produce il quoziente e il resto di due numeri a 8 bit con segno. Produce il quoziente e il resto di due numeri a 16 bit senza segno. Produce il quoziente e il resto di due numeri a 32 bit senza segno. Produce il quoziente e il resto di due numeri a 64 bit senza segno. Produce il quoziente e il resto di due numeri di dimensioni native senza segno. Restituisce `e` elevato alla potenza specificata. Restituisce il valore integrale massimo minore o uguale al numero decimale specificato. Restituisce il valore integrale massimo minore o uguale al numero a virgola mobile a precisione doppia specificato. Restituisce (x * y) + z, arrotondato come unica operazione ternaria. Restituisce il resto della divisione tra il numero specificato e un altro numero specificato. Restituisce la parte intera del logaritmo in base 2 del numero specificato. Restituisce il logaritmo naturale (in base `e`) di un numero specificato. Restituisce il logaritmo del numero specificato in una base specificata. Restituisce il logaritmo in base 10 del numero specificato. Restituisce il logaritmo in base 2 di un numero specificato. Restituisce il più elevato tra due interi senza segno a 8 bit. Restituisce il più elevato tra due numeri decimali. Restituisce il più elevato tra due numeri a virgola mobile e precisione doppia. Restituisce il più elevato tra due interi con segno a 16 bit. Restituisce il più elevato tra due interi con segno a 32 bit. Restituisce il più elevato tra due interi con segno a 64 bit. Restituisce il valore più grande di due interi con segno nativi. Restituisce il più elevato tra due interi con segno a 8 bit. Restituisce il più elevato tra due numeri a virgola mobile e precisione singola. Restituisce il più elevato tra due interi senza segno a 16 bit. Restituisce il più elevato tra due interi senza segno a 32 bit. Restituisce il più elevato tra due interi senza segno a 64 bit. Restituisce il valore più grande di due interi senza segno nativi. Restituisce la grandezza più elevata tra due numeri a virgola mobile e precisione doppia. Restituisce il meno elevato tra due interi senza segno a 8 bit. Restituisce il meno elevato tra due numeri decimali. Restituisce il meno elevato tra due numeri a virgola mobile e precisione doppia. Restituisce il meno elevato tra due interi con segno a 16 bit. Restituisce il meno elevato tra due interi con segno a 32 bit. Restituisce il meno elevato tra due interi con segno a 64 bit. Restituisce il più piccolo di due interi con segno nativi. Restituisce il meno elevato tra due interi con segno a 8 bit. Restituisce il meno elevato tra due numeri a virgola mobile e precisione singola. Restituisce il meno elevato tra due interi senza segno a 16 bit. Restituisce il meno elevato tra due interi senza segno a 32 bit. Restituisce il meno elevato tra due interi senza segno a 64 bit. Restituisce il più piccolo di due interi senza segno nativi. Restituisce la grandezza meno elevata tra due numeri a virgola mobile e precisione doppia. Restituisce il numero specificato elevato alla potenza specificata. Restituisce una stima del reciproco di un numero specificato. Restituisce una stima della radice quadrata reciproca di un numero specificato. 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. 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. Arrotonda un valore decimale a un numero specificato di cifre frazionarie utilizzando la convenzione di arrotondamento specificata. Arrotonda un valore decimale a un intero utilizzando la convenzione di arrotondamento specificata. 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. 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. Arrotonda un valore a virgola mobile e precisione doppia a un numero specificato di cifre frazionarie usando la convenzione di arrotondamento specificata. Arrotonda un valore a virgola mobile e precisione doppia a un intero usando la convenzione di arrotondamento specificata. Restituisce x * 2^n calcolato in modo efficiente. Restituisce un intero che indica il segno di un numero decimale. Restituisce un intero che indica il segno di un numero a virgola mobile e a precisione doppia. Restituisce un intero che indica il segno di un intero con firma a 16 bit. Restituisce un intero che indica il segno di un intero con segno a 32 bit. Restituisce un intero che indica il segno di un intero con segno a 64 bit. Restituisce un intero che indica il segno di un intero con segno di dimensioni native. Restituisce un intero che indica il segno di un intero con segno a 8 bit. Restituisce un intero che indica il segno di un numero a virgola mobile e a precisione singola. Restituisce il seno dell'angolo specificato. Restituisce il seno e il coseno dell'angolo specificato. Restituisce il seno iperbolico dell'angolo specificato. Restituisce la radice quadrata del numero specificato. Restituisce la tangente dell'angolo specificato. Restituisce la tangente iperbolica dell'angolo specificato. Calcola la parte integrale di un numero decimale specificato. Calcola la parte integrale di un numero a virgola mobile e precisione doppia specificato.