Точность double - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Недавно начал изучать С#, при решении простой задачи: найти сумму 1/0!+1/1!+...+1/n! возникает проблема с double.
static void Main(string[] args)
        {
            int n = 0;
            Console.WriteLine("Input n: ");
            String str = Console.ReadLine();
            n = int.Parse(str);
            int fak = 1;
            int[] faki = new int[n];
            for (int i = 0; i < n; i++)
            {
                if (i == 0)
                {
                    fak = 1;
                    faki[i] = fak;
                }
                else
                {
                    fak = fak * i;
                    faki[i] = fak;
                }
                Console.Write(" " + faki[i]);
            }
            double d = 0.000E + 0;
            for (int i = 0; i < n; i++)
            {
                double dd = 1 / faki[i];
                d = d + dd;
 
            }
            Console.WriteLine(" Result is: "+ d);
            Console.ReadLine();
почему то при i=2 и дальше dd принимает значение 0, т.е дробной части никакой не возникает. С чем может быть вызванна эта проблема и как её можно решить? Хелп плиз

Решение задачи: «Точность double»

textual
Листинг программы
double dd = 1.0 / faki[i];

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы