Я пытаюсь решить первую проблему из этой коллекции
Чтобы найти и отобразить значение Pi до N-го числа git (принимается как пользовательский ввод, ограниченный некоторым максимальным значением, мой угадайте максимальное количество десятичных разрядов, которое может удерживать самый большой ds, которое, я думаю, будет длинным, двойным?)
Ниже приведен фрагмент моей попытки.
//declarations
typedef numeric_limits< long double > db;
int MAX = db::digits10;
int N = 0; //digit allowance
long double pi_val = M_PI;
string string_pi;
//user input
while(1){
cout << "Enter a value of n < or = " << MAX << endl;
cin >> N;
if(N>18){cout << "Lesser please" << endl;}
else
break;
}
//outputs
cout << "Pi till the " << N << " digit is: ";
cout << setprecision(N+1) << fixed << pi_val << endl;
string_pi = to_string((long double)pi_val * pow(10, N));
cout << string_pi << endl;
cout << "The Nth digit of pi is: " << string_pi[N] << endl;
Ps Я знаю, что существуют более новые способы решения проблемы go, но, поскольку я крайне новичок в cpp, я достиг бы лучшего ощущения достижения благодаря заставляя мою идею работать.
Теперь проблема , она правильно отображает Nth di git, но вывод Pi до значения Nth всегда округляется, несмотря на 'fixed' и 'setprecision ()', поэтому мне пришлось отобразить дополнительный ди git, чтобы соответствовать последнему выводу
Как я могу исправить эту проблему, если это возможно, не меняя основной лог c Я использовал
Спасибо