![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /// <summary> 2 /// 计算余弦函数值 3 /// sinx的平方+cos的平方=1 4 /// </summary> 5 /// <param name="number"></param> 6 /// <returns></returns> 7 private static double Cos(double number) 8 { 9 //误差 10 double gap = 0.00000001; 11 //每一项的值 12 double everyOne = 0; 13 //结果 14 double result = 0; 15 //将数据转化为弧度值 16 double angle = (number * 3.14) / 180; 17 //循环变量 18 int n = 1; 19 //正负标志 20 int option = 1; 21 //误差范围外循环 22 do 23 { 24 //求通用项的值 25 everyOne = Power(angle, 2 * n - 2) / (Factorial(2 * n - 2)) * option; 26 option = -option; 27 result += everyOne; 28 n++; 29 } while (everyOne >= gap); 30 return result; 31 } 32 33 /// <summary> 34 /// 计算正弦函数值 35 /// </summary> 36 /// <param name="number"></param> 37 /// <returns></returns> 38 private static double Sin(double number) 39 { 40 //误差 41 double gap = 0.00000001; 42 //每一项的值 43 double everyOne = 0; 44 //结果 45 double result = 0; 46 //将数据转化为弧度值 47 double angle = (number * 3.14) / 180; 48 //循环变量 49 int n = 1; 50 //正负标志 51 int option = 1; 52 //误差范围外循环 53 do 54 { 55 //求通用项的值 56 everyOne = Power(angle, 2 * n - 1) / (Factorial(2 * n - 1)) * option; 57 option = -option; 58 result += everyOne; 59 n++; 60 } while (everyOne>=gap); 61 return result; 62 } 63 64 /// <summary> 65 /// 求指定数字的指定次幂 66 /// </summary> 67 /// <param name="angle"></param> 68 /// <param name="p"></param> 69 /// <returns></returns> 70 private static double Power(double number, int power) 71 { 72 double result = 1; 73 if (power == 1) 74 { 75 return number; 76 } 77 else 78 { 79 for (int i = 1; i <= power; i++) 80 { 81 result = result * number; 82 } 83 } 84 return result; 85 } 86 87 88 /// <summary> 89 /// 求阶乘 90 /// </summary> 91 /// <param name="number"></param> 92 /// <returns></returns> 93 private static int Factorial(int number) 94 { 95 if (number > 16) 96 { 97 throw new Exception("超出范围"); 98 } 99 int result = 1; 100 for (int i = 1; i <=number; i++) 101 { 102 result = result * i; 103 } 104 return result; 105 }