如何取精度而不进行四舍五入

代码如下,例如输入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位小数呢?