關於C# math的用法

最近在用.net寫樸素貝葉斯算法時,發現所有關於Math的函數參數值類型都爲double,這樣在進行浮點運算時精度無法得到保證。需要轉爲decimal。總結方法如下:
<span style="font-size:14px;">for(int j=0;j<featuresinput.Count;j++)
            {
                decimal Gaosi;
                if (CalFeatureVar[j] == 0.0)
                {
                    Gaosi = 1.0m;
                    CP.Add(Gaosi);
                }
                else
                {
                    Gaosi = Convert.ToDecimal(Math.Log((1.0 / Math.Sqrt(2.0 * Math.PI * CalFeatureVar[j])))) + Convert.ToDecimal(-(1.0 / 2.0 * Math.Pow((featuresinput[j] - CalFeatureAvr[j]), 2.0)/ CalFeatureVar[j]));//math.exp小心爲1和爲0的情況
                    CP.Add(Gaosi);
                }
            }</span>


附:math類用法

Math 方法:

  • Acos:返回餘弦值爲指定數字的角度。
  • Asin:返回正弦值爲指定數字的角度。
  • Atan:返回正切值爲指定數字的角度。
  • Atan2:返回正切值爲兩個指定數字的商的角度。
  • Cos:返回指定角度的餘弦值。
  • Sin:返回指定角度的正弦值。
  • Tan:返回指定角度的正切值。
  • Abs:返回指定數字的絕對值。
  • Ceiling:返回大於或等於指定數字的最小整數。
  • Floor:返回小於或等於指定數字的最大整數。
  • Round:將值舍入到接近的整數或指定的小數位數
    • Round(Double):四捨五入。
    • Round(Double, Int32):四捨五入,小數位數。
    • Round(Double, MidpointRounding)
    • Round(Double, Int32, MidpointRounding)
    • MidpointRounding.ToEven:舍入最接近的偶數。   2.5 → 2
    • MidpointRounding.AwayFromZero:舍入絕對值較大的值。   2.5 → 3
  • Exp:返回e的指定次冪。
  • Pow:返回指定數字的指定次冪。
  • Log10:返回指定數字以10爲低的對數。
  • Log:返回指定數字的對數。
    • Log(Double):返回指定數字的自然對數(底爲e)。
    • Log(Double, Double):返回指定數字在使用指定底數時的對數。
    • Log(1000, 10) = 3    底數寫在後面。
  • Max:返回兩個指定數字中較大的一個。
  • Min:返回兩個指定數字中較小的一個。
  • Sqrt:返回指定數字的平方根。
  • Truncate:計算一個數字的整數部分。

 Math 字段:

  • E:表示自然對數的底,它由常數e指定。
  • PI:表示圓的周長與其直徑的比值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章