Пытаясь расширить мой результат, чтобы иметь 8 цифр после десятичной

Я пытаюсь расширить результат в моей программе до 8 цифр после десятичной точки. Я перешел эту страницу (http://www.cplusplus.com/reference/ios/ios_base/precision/) но мне не повезло изменить результат. Какие-либо предложения? Спасибо вам.

#include <iostream>
#include <math.h>

using namespace std;

long double taylorSeriesToCalculateCosine(long double x, int degree);
long factorial( int input );

int main(int argc, const char * argv[])
{
cout << "Cosine of .3: ";
cout << taylorSeriesToCalculateCosine(.3,3) << endl;

return 0;
}

// taylor series to calculate cosine
long double taylorSeriesToCalculateCosine(long double x,int degree){

int i = 0;
long double accumulation = 0;
int cosInputArray[4] = {1,0,-1,0};

while (i < degree) {

int input = cosInputArray[i%4];

accumulation += input*((pow(x, i))/factorial(i));
i++;
}

return accumulation;
}

ВЫХОД:

Cosine of .3: 0.955

2

Решение

Тебе нужно std::setprecision от <iomanip> заголовок:

cout << setprecision( 8 ) << taylorSeriesToCalculateCosine(.3,3) << endl;

Если вы хотите, чтобы результат всегда иметь определенную ширину, использовать

cout << setfill('0') << left << setw(10) << setprecision(8)
<< taylorSeriesToCalculateCosine(.3,3) << endl;
5

Другие решения

Как говорится в статье в ссылке:

cout << "Cosine of .3: ";
std::cout.precision(10);
cout << taylorSeriesToCalculateCosine(.3,3) << endl;

это об этом.

2

По вопросам рекламы [email protected]