Никак не могу заставить программу находить косинус

Нужно написать программу со статистическим методом для вычисления косинуса, используя формулу Cos(x) = 1-(x^2)/2! + (x^4)/4! - (x^6)/6!...+((-1)^n)*(x^2n))/(2n)! Однако выдаёт очень большие числа после, если ввожу x >= 3. Уже детально просматривал формулы, но ошибок не нашёл. Помогите,пожалуйста....

 class Maths
     {
         // Метод вычисления факториала
         public static int Fact(int x)
         {
             int res = 1;
             for (int i = x; i >= 2; i--)
             {
                 res *= i;
             }
             return res;
         }

         public static double Ch;

         // Метод вычисления косинуса
         public static double Cos( double Ch)
         {
             double Otv = 0;

             for (int i = 1; i <= 6; i++) {
                  Otv += Math.Pow((-1),i) * Math.Pow(Ch, 2* i )/Maths.Fact(2 * i);
                 
                     }
             Otv = 1 - Otv;
             return Otv;
         }
     }
     class Program
     {
         static void Main(string[] args)
         {
             Console.WriteLine("Введите число");
             double x = Convert.ToDouble(Console.ReadLine()) ;
             x = Maths.Cos(x);
             Console.WriteLine("Cos = " + x);

         }

Ответы (1 шт):

Автор решения: Igor
for (int i = 1; i <= 6; i++) {

введите сюда описание изображения


for (int i = 1; i <= 12; i++) {

введите сюда описание изображения


     public static double Fact(int x)
     {
         double res = 1;
         for (int i = x; i >= 2; i--)
         {
             res *= i;
         }
         return res;
     }
→ Ссылка