Не могу показать все десятичные числа C # - PullRequest
1 голос
/ 22 октября 2019

У меня есть небольшой метод в C # с целью решения этого базового уравнения :

Base equation

Я даю n и x значения вручную

Мы собираемся предположить, что значение X равно 3 и n значение 1 . Если я оцениваю уравнение, то получаю такой результат:

enter image description here Моя проблема в том, что вывод равен 0, Я также пытался проанализировать результат , новсе еще отображается 0.

Реальный результат - 0.88888888 , но в выводе программы я только что получил 0 .

Вот мой код:

using System;

namespace Polinomio
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = 3;
            int n = 1;

            double result = 0;

            for (int i = 0; i <= n; i++) {
                result += (double)(Math.Pow((x - 1) / 3, Math.Pow(2, i))) / Math.Pow(2, i);           
            }

            Console.WriteLine(result);
        }
    }
}

Я не знаю, что я делаю неправильно или чего мне не хватает, я буду благодарен за любую помощь.

1 Ответ

3 голосов
/ 22 октября 2019

Просто измените типы данных вашей переменной на удвоение.

 double x = 3;
 int n = 1;

 double result = 0;

 for (int i = 0; i <= n; i++)
 {
      result += (Math.Pow((x - 1) / 3, Math.Pow(2, i))) / Math.Pow(2, i);
 }

 Console.WriteLine(result);

Это поможет.

Посмотрите здесь: Неявное преобразование int в double для неявной точности преобразования в коде C #.

...