Math 類別

System 命名空間提供一個稱為Math的類別,其中定義了用以處理三角函數、對數以及一般數學計算函式所需的類別成員,並且以靜態成員的型式公開,直接引用這些函式可以讓你不需自行撰寫運算邏輯即可輕易取得數學算結果。

要特別注意,Math 類別的所有方法成員均是靜態成員,因此不需建立實體物件即可直接引用,這些函式的數量相當多,除了方法成員,Math 類別另外定義了兩個公用的欄位成員- PI 以及 E ,分別代表圓周率以及自然對數常數,這裏一併作說明。

Math 類別提供執行各種常見數學運算的方法成員,相較於這些成員, Math 類別只定義了兩個常數欄位,分別是用來表示自然對數的 Math.E 以及圓周率(π)的 Math.PI ,底下為其定義:
public const double E
public const double PI
這兩個常數的用法很簡單,直接以Math類別引用即可,如下式:
Math.E
Math.PI
第一行回傳一個代表圓周率的 double 數值,第二行則是回傳代表圓周率的 double 數值。以下是實際的類別程式碼,分別輸出 PI 以及 E 的值。
public class Program
{
    public static void Main(String[] args)
    {        
        Console.WriteLine("PI:"+Math.PI);
        Console.WriteLine("E:"+Math.E);  
        Console.ReadLine();
    }
}
這個類別中的 Main 方法,輸出以下的結果:
PI:3.14159265358979
E:2.71828182845905
三角函式

Math 類別所提供的方法中,與三角函式有關的成員,相關的函式成員有六個,前三個分別為正弦(sin)、餘弦(cos)以及正切(tan),以下為這些函式的定義:
public static double Sin(double a)
public static double Cos(double a)
public static double Tan(double a)
其中的參數 a 代表所要計算的弧度(radians),一般我們使用角度單位,將其乘上「Math.PI/180」可以完成轉換,稍後的範例進行說明。

你也可以進行反向運算,將一個三角函數的運算結果轉換成為其對應的角度回傳,以下是這一組方法:
public static double Asin(double a)
public static double Acos(double a)
public static double Atan(double a)
Asin 回傳的值介於 -pi/2 ~ pi/2 之間, Acos 則是 0.0 ~ pi 之間,而 Atan 則同樣是 -pi/2 ~ pi/2 之間的值,接下來的範例簡要的說明相關函式的應用。
class Program
{
    static void Main(string[] args)
    {
        double a30 = int.Parse(Console.ReadLine()) * Math.PI / 180;
        double a60 = int.Parse(Console.ReadLine()) * Math.PI / 180;
        double a45 = int.Parse(Console.ReadLine()) * Math.PI / 180;

        string msg = "sin:" + Math.Sin(a30).ToString() + "\n" +
                     "cos:" + Math.Cos(a60).ToString() + "\n" +
                     "tan:" + Math.Tan(a45).ToString();
        msg = "\n\n// output ... \n\n" + msg;
        Console.WriteLine(msg);
        Console.ReadKey();

    }
}
首先定義三個 double 變數, a30 、 a60 與 a45 ,取得使用者輸入的角度之後,轉換成為整數,再轉換成為弧度單位

接下來依序傳入 Math 類別的三角函式方法 Sin、Cos 以及 Tan,取得結果,最後作簡單的格式化輸出。
30
60
45

// output ...

sin:0.5
cos:0.5
tan:1

輸入所要計算的角度,最後會出現包含計算結果的訊息輸出,讀者也可以自行嘗試其它的角度進行測試。

直接利用Math類別進行三角函式非常的方便,不過再次提醒這些函式所使用的單位均為弧度,由於我們習慣以角度作計算,必須對其進行弧度轉換,才能得到正確的結果。

自然對數與指數函式

與自然對數有關的函式成員有兩個,分別是 Log10 、 Log :
public static double Log10(double d)
public static double Log(double d)
其中第一個 Log10 取得其參數 d 以 10 為底的對數,第二個函式取得指定參數 d 的自然對數。Log 函式還有另外一個多載的版本,此版本方法接受兩個 double 參數,定義如下:
public static double Log (
 double a,
 double newBase
)
這個版本的方法必須提供第二個 double 參數 newBase ,回傳的結果值則是參數 a 以newBase 為底的對數。聰明的讀者應該可以聯想到,底下兩行程式碼將會回傳相同的結果:
Math.Log10(100)
Math.Log(100,10)
數學指數運算包含了次方運算以及平方根,分別由函式 pow 以及 sqrt 提供所需的功能。
public static double Pow(double x,double y)
public static double Sqrt(double d)
Pow 計算參數 x 的 y 次方,並且將結果回傳, Sqrt 則是回傳參數d的平方根。

以上的方法的使用都相當直觀,傳入要計算的數值,回傳值即是計算後的結果,請自行嘗試。



沒有留言: