我有一個應用程式,我想將計算出的素數的精度列印到所需的數字。但是在終端上省略了數字,如下圖所示。

我用于此的代碼是
int main ()
{
cout << "Enter the precision for calculation" << endl;
long num_steps ;
cin >> num_steps ;
cout << "Precision = " << num_steps << endl;
double step;
double x=0.0, pi, sum = 0.0;
cout << "Enter the number of CPU core involved in calculation" << endl;
int numberOfCpuCore = 0;
cin >> numberOfCpuCore;
int i;
step = 1.0l/( double) num_steps;
}
pi = step * sum;
printf("Pi value = %.10le\n", pi);
return 0;
}
我的問題是如何將精度列印到從命令列輸入的所需數字。
uj5u.com熱心網友回復:
使用iomanip. 首先添加#include <iomanip>,然后std::setprecision(num_steps)像這樣:
#include <cstdio>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << "Enter the precision for calculation" << endl;
long num_steps;
cin >> num_steps;
cout << "Precision = " << num_steps << endl;
double step;
double x = 0.0, pi, sum = 0.0;
cout << "Enter the number of CPU core involved in calculation" << endl;
int numberOfCpuCore = 0;
cin >> numberOfCpuCore;
int i;
step = 1.0l / (double)num_steps;
#pragma omp parallel for reduction( :sum) num_threads(numberOfCpuCore) private(x)
for (i = 0; i < num_steps; i )
{
x = (i 0.5) * step;
sum = sum 4.0 / (1.0 x * x);
// int threadId = omp_get_thread_num();
// printf("Thread index =%i, Pi value in thread = %le\n", threadId, sum);
}
pi = step * sum;
cout << "Pi value =" << std::setprecision(num_steps) << pi << endl;
// printf("Pi value = %.10le\n", pi);
return 0;
}
這將輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470098.html
