代码如下,例如输入10,想要输出3.041839618929402,在这个程序里输出的是3.041839618929403,怎么样才能不让它四舍五入呢,需要保留15位小数
#include<stdio.h>
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double sum = 0;
double flag = 1;
double temp = 1;
double i = 1;
double n;
while (cin >> n)
{
while (i <= n)
{
temp = 1.0 / (2 * i - 1)*(flag);
i++;
sum = sum + temp;
flag = -flag;
}
double pai;
pai = 4 * sum;
cout << setiosflags(ios::fixed) << setprecision(15) << pai << endl;
cout << endl;
}
}
以小数点后取6位为例
scanf("%d%d",&a,&b);
double num = a * pi + 2 * b;
printf("%.6lf\n",num - 0.0000005);
觉得有用的话采纳一下哈
这不是四舍五入的问题,这是浮点数精度问题,只能精确到15位
为什么不要求保留100位小数呢?