Math 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供三角函數、對數及其他常見數學函數的常數與靜態方法。
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 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 right 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 right 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 right base angle is: " + dyD.ToString() + " Degrees")
End Sub
End Class
欄位
| 名稱 | Description |
|---|---|
| E |
表示自然對數底,由常數 |
| PI |
代表圓周長與直徑的比值,由常數π表示。 |
| Tau |
表示一回合內弧度數,由常數 τ 表示。 |
方法
| 名稱 | Description |
|---|---|
| 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) |
傳回正切函數 (Tangent) 是指定數字的角。 |
| Atan2(Double, Double) |
返回切線為兩個指定數的商角。 |
| Atanh(Double) |
回傳雙曲切線為指定數值的角度。 |
| BigMul(Int32, Int32) |
產生兩個 32 位元數字的全積。 |
| BigMul(Int64, Int64, Int64) |
產生兩個 64 位元數字的全積。 |
| BigMul(Int64, Int64) |
產生兩個 64 位元數字的全積。 |
| BigMul(UInt32, UInt32) |
產生兩個無符號 32 位元數字的完整乘積。 |
| BigMul(UInt64, UInt64, UInt64) |
產生兩個無符號 64 位元數字的完整乘積。 |
| BigMul(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, Int32) |
計算兩個 32 位帶正負號整數的商數,並傳回輸出參數中的餘數。 |
| DivRem(Int32, Int32) |
產生商數和兩個帶正負號的32位數位的其餘部分。 |
| DivRem(Int64, Int64, Int64) |
計算兩個64位帶正負號整數的商數,並傳回輸出參數中的餘數。 |
| DivRem(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, Double) |
回傳指定底數中指定數字的對數。 |
| Log(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, Int32, MidpointRounding) |
利用指定的四捨五入慣例,將小數點數四捨五入至指定數量的分數。 |
| Round(Decimal, Int32) |
將小數值四捨五入至指定小數位數,並將中點數四捨五入至最近的偶數。 |
| Round(Decimal, MidpointRounding) |
使用指定的四捨五入約定,將小數值四捨五入整數。 |
| Round(Decimal) |
將小數值四捨五入為最近的整數值,並將中點值四捨五入至最近的偶數。 |
| Round(Double, Int32, MidpointRounding) |
利用指定的四捨五入慣例,將雙精度浮點數數四捨五入至指定數量的分數位數。 |
| Round(Double, Int32) |
將雙精度浮點數取整至指定小數位數,並將中點數取整至最近的偶數。 |
| Round(Double, MidpointRounding) |
利用指定的四捨五入慣例,將雙精度浮點數值四捨五入為整數。 |
| Round(Double) |
將雙精度浮點數取整至最近的整數值,並將中點數取入至最近的偶數。 |
| 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) |
計算指定的雙精度浮點數的整數部分。 |