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
Примеры
В следующем примере используются несколько математических и тригонометрических функций из класса 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 |
Представляет естественную логарифмическую базу, указанную константой, |
PI |
Представляет отношение окружности круга к его диаметру, заданному константой, π. |
Tau |
Представляет количество радианов в одном повороте, указанное константой, fx. |
Методы
Abs(Decimal) |
Возвращает абсолютное значение Decimal числа. |
Abs(Double) |
Возвращает абсолютное значение числа с плавающей запятой двойной точности. |
Abs(Int16) |
Возвращает абсолютное значение 16-разрядного целого числа со знаком. |
Abs(Int32) |
Возвращает абсолютное значение 32-разрядного целого числа со знаком. |
Abs(Int64) |
Возвращает абсолютное значение 64-разрядного целого числа со знаком. |
Abs(IntPtr) |
Возвращает абсолютное значение собственного целого числа со знаком. |
Abs(SByte) |
Возвращает абсолютное значение 8-разрядного целого числа со знаком. |
Abs(Single) |
Возвращает абсолютное значение числа с плавающей запятой с одной точностью. |
Acos(Double) |
Возвращает угол, косинус которого является указанным числом. |
Acosh(Double) |
Возвращает угол, гиперболический косинус которого является указанным числом. |
Asin(Double) |
Возвращает угол, синус которого является указанным числом. |
Asinh(Double) |
Возвращает угол, гиперболический синус которого является указанным числом. |
Atan(Double) |
Возвращает угол, тангенс которого является указанным числом. |
Atan2(Double, Double) |
Возвращает угол, тангенс которого является кворентом двух указанных чисел. |
Atanh(Double) |
Возвращает угол, гиперболический тангенс которого является указанным числом. |
BigMul(Int32, Int32) |
Создает полный продукт двух 32-разрядных чисел. |
BigMul(Int64, Int64) |
Создает полный продукт двух 64-разрядных чисел. |
BigMul(Int64, Int64, Int64) |
Создает полный продукт двух 64-разрядных чисел. |
BigMul(UInt32, UInt32) |
Создает полный продукт двух незначенных 32-разрядных чисел. |
BigMul(UInt64, UInt64) |
Создает полный продукт двух неподписанных 64-разрядных чисел. |
BigMul(UInt64, UInt64, UInt64) |
Создает полный продукт двух неподписанных 64-разрядных чисел. |
BitDecrement(Double) |
Возвращает наибольшее значение, которое сравнивает меньше указанного значения. |
BitIncrement(Double) |
Возвращает наименьшее значение, которое сравнивает больше указанного значения. |
Cbrt(Double) |
Возвращает корень куба указанного числа. |
Ceiling(Decimal) |
Возвращает наименьшее целочисленное значение, большее или равное указанному десятичному числу. |
Ceiling(Double) |
Возвращает наименьшее целочисленное значение, большее или равное указанному числу с плавающей запятой двойной точности. |
Clamp(Byte, Byte, Byte) |
Возвращает |
Clamp(Decimal, Decimal, Decimal) |
Возвращает |
Clamp(Double, Double, Double) |
Возвращает |
Clamp(Int16, Int16, Int16) |
Возвращает |
Clamp(Int32, Int32, Int32) |
Возвращает |
Clamp(Int64, Int64, Int64) |
Возвращает |
Clamp(IntPtr, IntPtr, IntPtr) |
Возвращает |
Clamp(SByte, SByte, SByte) |
Возвращает |
Clamp(Single, Single, Single) |
Возвращает |
Clamp(UInt16, UInt16, UInt16) |
Возвращает |
Clamp(UInt32, UInt32, UInt32) |
Возвращает |
Clamp(UInt64, UInt64, UInt64) |
Возвращает |
Clamp(UIntPtr, UIntPtr, UIntPtr) |
Возвращает |
CopySign(Double, Double) |
Возвращает значение с величиной |
Cos(Double) |
Возвращает косинус указанного угла. |
Cosh(Double) |
Возвращает гиперболический косинус указанного угла. |
DivRem(Byte, Byte) |
Создает кавычки и оставшуюся часть двух неподписанных 8-разрядных чисел. |
DivRem(Int16, Int16) |
Создает кавычки и оставшуюся часть двух подписанных 16-разрядных чисел. |
DivRem(Int32, Int32) |
Создает кавычки и оставшуюся часть двух подписанных 32-разрядных чисел. |
DivRem(Int32, Int32, Int32) |
Вычисляет кавычки двух 32-разрядных целых чисел со знаком, а также возвращает оставшуюся часть в выходном параметре. |
DivRem(Int64, Int64) |
Создает кавычки и оставшуюся часть двух подписанных 64-разрядных чисел. |
DivRem(Int64, Int64, Int64) |
Вычисляет кавычки двух 64-разрядных целых чисел со знаком, а также возвращает оставшуюся часть в выходном параметре. |
DivRem(IntPtr, IntPtr) |
Создает кворот и оставшуюся часть двух подписанных номеров собственного размера. |
DivRem(SByte, SByte) |
Создает кавычки и оставшуюся часть двух подписанных 8-разрядных чисел. |
DivRem(UInt16, UInt16) |
Создает кавычки и оставшуюся часть двух неподписанных 16-разрядных чисел. |
DivRem(UInt32, UInt32) |
Создает кавычки и оставшуюся часть двух неподписанных 32-разрядных чисел. |
DivRem(UInt64, UInt64) |
Создает кавычки и оставшуюся часть двух неподписанных 64-разрядных чисел. |
DivRem(UIntPtr, UIntPtr) |
Создает кворот и оставшуюся часть двух неподписанных номеров собственного размера. |
Exp(Double) |
Возвращает |
Floor(Decimal) |
Возвращает наибольшее целочисленное значение меньше или равно указанному десятичному числу. |
Floor(Double) |
Возвращает наибольшее целочисленное значение меньше или равно указанному числу с плавающей запятой двойной точности. |
FusedMultiplyAdd(Double, Double, Double) |
Возвращает (x * y) + z, округляется как одна тернарная операция. |
IEEERemainder(Double, Double) |
Возвращает оставшуюся часть, полученную от деления указанного числа на другое указанное число. |
ILogB(Double) |
Возвращает базовый 2 целочисленный логарифм указанного числа. |
Log(Double) |
Возвращает естественный логарифм (базовый |
Log(Double, Double) |
Возвращает логарифм указанного числа в указанной базе. |
Log10(Double) |
Возвращает базовый 10 логарифм указанного числа. |
Log2(Double) |
Возвращает базовый 2 логарифм указанного числа. |
Max(Byte, Byte) |
Возвращает больше двух 8-разрядных целых чисел без знака. |
Max(Decimal, Decimal) |
Возвращает больше двух десятичных чисел. |
Max(Double, Double) |
Возвращает больше двух чисел с плавающей запятой двойной точности. |
Max(Int16, Int16) |
Возвращает больше двух 16-разрядных целых чисел со знаком. |
Max(Int32, Int32) |
Возвращает больше двух 32-разрядных целых чисел со знаком. |
Max(Int64, Int64) |
Возвращает больше двух 64-разрядных целых чисел со знаком. |
Max(IntPtr, IntPtr) |
Возвращает больше двух собственных целых чисел со знаком. |
Max(SByte, SByte) |
Возвращает больше двух 8-разрядных целых чисел со знаком. |
Max(Single, Single) |
Возвращает больше двух чисел с плавающей запятой с одной точностью. |
Max(UInt16, UInt16) |
Возвращает больше двух 16-разрядных целых чисел без знака. |
Max(UInt32, UInt32) |
Возвращает больше двух 32-разрядных целых чисел без знака. |
Max(UInt64, UInt64) |
Возвращает больше двух 64-разрядных целых чисел без знака. |
Max(UIntPtr, UIntPtr) |
Возвращает больше двух собственных целых чисел без знака. |
MaxMagnitude(Double, Double) |
Возвращает большую величину двух чисел с плавающей запятой двойной точности. |
Min(Byte, Byte) |
Возвращает меньшее из двух 8-разрядных целых чисел без знака. |
Min(Decimal, Decimal) |
Возвращает меньшее из двух десятичных чисел. |
Min(Double, Double) |
Возвращает меньшее число с плавающей запятой двойной точности. |
Min(Int16, Int16) |
Возвращает меньшее из двух 16-разрядных целых чисел со знаком. |
Min(Int32, Int32) |
Возвращает меньшее из двух 32-разрядных целых чисел со знаком. |
Min(Int64, Int64) |
Возвращает меньшее из двух 64-разрядных целых чисел со знаком. |
Min(IntPtr, IntPtr) |
Возвращает меньшее из двух собственных целых чисел со знаком. |
Min(SByte, SByte) |
Возвращает меньшее из двух 8-разрядных целых чисел со знаком. |
Min(Single, Single) |
Возвращает меньше двух чисел с плавающей запятой с одной точностью. |
Min(UInt16, UInt16) |
Возвращает меньшее из двух 16-разрядных целых чисел без знака. |
Min(UInt32, UInt32) |
Возвращает меньшее из двух 32-разрядных целых чисел без знака. |
Min(UInt64, UInt64) |
Возвращает меньшее из двух 64-разрядных целых чисел без знака. |
Min(UIntPtr, UIntPtr) |
Возвращает меньшее из двух собственных целых чисел без знака. |
MinMagnitude(Double, Double) |
Возвращает меньшее значение двух чисел с плавающей запятой двойной точности. |
Pow(Double, Double) |
Возвращает указанное число, поднятое до указанной мощности. |
ReciprocalEstimate(Double) |
Возвращает оценку обратного значения указанного числа. |
ReciprocalSqrtEstimate(Double) |
Возвращает оценку обратного квадратного корня указанного числа. |
Round(Decimal) |
Округляет десятичное значение до ближайшего целочисленного значения и округляет значения середины до ближайшего четного числа. |
Round(Decimal, Int32) |
Округляет десятичное значение до указанного числа дробных цифр и округляет средние значения до ближайшего четного числа. |
Round(Decimal, Int32, MidpointRounding) |
Округляет десятичное значение до указанного числа дробных цифр с помощью указанного соглашения округления. |
Round(Decimal, MidpointRounding) |
Округляет десятичное значение целочисленного числа с помощью указанного соглашения округления. |
Round(Double) |
Округляет значение с плавающей запятой двойной точности до ближайшего целочисленного значения и округляет значения середины до ближайшего четного числа. |
Round(Double, Int32) |
Округляет значение с плавающей запятой двойной точности до указанного числа дробных цифр и округляет значения середины до ближайшего четного числа. |
Round(Double, Int32, MidpointRounding) |
Округляет значение с плавающей запятой двойной точности до указанного количества дробных цифр с помощью указанного соглашения округления. |
Round(Double, MidpointRounding) |
Округляет значение с плавающей запятой двойной точности до целого числа, используя указанное соглашение округления. |
ScaleB(Double, Int32) |
Возвращает x * 2^n, вычисленное эффективно. |
Sign(Decimal) |
Возвращает целое число, указывающее знак десятичного числа. |
Sign(Double) |
Возвращает целое число, указывающее знак числа с плавающей запятой двойной точности. |
Sign(Int16) |
Возвращает целое число, указывающее знак 16-разрядного целого числа со знаком. |
Sign(Int32) |
Возвращает целое число, указывающее знак 32-разрядного целого числа со знаком. |
Sign(Int64) |
Возвращает целое число, указывающее знак 64-разрядного целого числа со знаком. |
Sign(IntPtr) |
Возвращает целое число, указывающее знак собственного целого числа со знаком. |
Sign(SByte) |
Возвращает целое число, указывающее знак 8-разрядного целого числа со знаком. |
Sign(Single) |
Возвращает целое число, указывающее знак числа с плавающей запятой с одной точностью. |
Sin(Double) |
Возвращает синус указанного угла. |
SinCos(Double) |
Возвращает синус и косинус указанного угла. |
Sinh(Double) |
Возвращает гиперболический синус указанного угла. |
Sqrt(Double) |
Возвращает квадратный корень указанного числа. |
Tan(Double) |
Возвращает тангенс указанного угла. |
Tanh(Double) |
Возвращает гиперболический тангенс указанного угла. |
Truncate(Decimal) |
Вычисляет неотъемлемую часть указанного десятичного числа. |
Truncate(Double) |
Вычисляет неотъемлемую часть указанного числа с плавающей запятой двойной точности. |