Точность double - C#
Формулировка задачи:
Всем доброго времени суток!
Недавно начал изучать С#, при решении простой задачи:
найти сумму 1/0!+1/1!+...+1/n!
возникает проблема с double.
почему то при i=2 и дальше dd принимает значение 0, т.е дробной части никакой не возникает.
С чем может быть вызванна эта проблема и как её можно решить?
Хелп плиз
Листинг программы
- 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();
Решение задачи: «Точность double»
textual
Листинг программы
- double dd = 1.0 / faki[i];
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д