Результат составляет всего 5 знаков после запятой даже с длинным двойным числом (в С++)

Я написал программу на С++ для вычисления числа пи, используя бесконечное расширение числа пи/4. Я использовал long double, но все равно получаю pi = 3.14158. Где отрубается лишний десятичный знак. Как это исправить? Итак, это мой код:

#include<iostream>
#include<math.h>
using namespace std;

int main(void)
{
    long double pi=1,si,i;

    for(i=1;i<100000;i++)
    {
        si = (pow(-1.0 ,i))/(2*i+1);
        pi += si;
    }

    pi*=4.0;
    cout<<"  "<< pi <<" \n ";
}

person Ashwin Kumar k    schedule 04.09.2015    source источник
comment
std::cout отбрасывает лишнее десятичное число.   -  person Praveen    schedule 04.09.2015


Ответы (1)


Ваша проблема здесь не в фактической точности вычисленного числа, а в форматировании отображаемого вывода. Проверьте этот ответ для Детали.

person Logicrat    schedule 04.09.2015