在 cpp 中打印小数精度达到所需的数字
Printing decimal precision upto desiired number in cpp
我有一个应用程序,我想将计算出的素数的精度打印到所需的数字。但是在终端上省略了数字,如下所示。
我使用的代码如下
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;
}
我的问题是如何将精度打印为从命令行输入的所需数字。
使用iomanip
。首先添加 #include <iomanip>
然后添加 std::setprecision(num_steps)
就像这个程序:
此代码是根据 Calculate Pi 中的 Geeks For Geeks 编写的。
#include <cstdio>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
// Initialize denominator
double k = 1;
// Initialize sum
double s = 0;
for (auto i(0); i < 10000; i++)
{
if (i % 2 == 0)
{
s += 4 / k;
}
else
{
s -= 4 / k;
}
// denominator is odd
k += 2;
}
cout << "Pi value =" << std::setprecision(k) << s << endl;
// printf("Pi value = %.10le\n", pi);
return 0;
}
这将是输出:
我有一个应用程序,我想将计算出的素数的精度打印到所需的数字。但是在终端上省略了数字,如下所示。
我使用的代码如下
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;
}
我的问题是如何将精度打印为从命令行输入的所需数字。
使用iomanip
。首先添加 #include <iomanip>
然后添加 std::setprecision(num_steps)
就像这个程序:
此代码是根据 Calculate Pi 中的 Geeks For Geeks 编写的。
#include <cstdio>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
// Initialize denominator
double k = 1;
// Initialize sum
double s = 0;
for (auto i(0); i < 10000; i++)
{
if (i % 2 == 0)
{
s += 4 / k;
}
else
{
s -= 4 / k;
}
// denominator is odd
k += 2;
}
cout << "Pi value =" << std::setprecision(k) << s << endl;
// printf("Pi value = %.10le\n", pi);
return 0;
}
这将是输出: