Недавно я выбрал язык программирования c ++ и пытаюсь вычислить цифры «e» для проекта «Calculus Project» в школе. Я вставлю pgoram, который я написал ниже. Он основан на е = lim (1 + 1 / x) ^ x, как x-> бесконечность. В этой программе я установил х = 100000. Я также установил x = 1 000 000 и заметил, что ответы как-то подвергаются ошибке округления, а не становятся длиннее.
Программа:
#include <iostream>
#include <math.h>
using namespace std;
long double sum;
int main()
{
long double x=100000;
sum= (pow((1+(1/x)),(x)));
cout<<sum;
}
Любые советы / рекомендации по распечатке большего количества цифр были бы отличными. Заранее спасибо.
С одной стороны, long double ограничен числом цифр, которые он может произвести, и из-за того, как реализованы действительные числа, он не даст точных результатов.
Но, чтобы ответить на ваш вопрос, вы можете установить точность cout, выполнив
cout.precision(15);
cout << sum;
Также смотрите этот ответ для более подробных объяснений и подробностей см.
Как вывести двойное значение с полной точностью, используя cout?
Double в c ++ — это число с плавающей запятой. Для точного расчета, как это вам нужно использовать десятичное число.
Увидеть этот ответ о десятичной в CPP