Jak mogę uzyskać wynik z liczbą dziesiętną w podziale? C ++, Pi

Moja szkoła wyznaczyła mi zadanie obliczenia pi.

Wynik powinien być:

Question 4
Accuracy set at : 1000

term               pi
1                  4
100                3.13159
200                3.13659
300                3.13826
400                ...
...                ...

Wynik w moim programie:

term               pi
1                  4
100                3
200                3
300                3
400                ...
...                ...

Domyślam się, że kiedy to zrobię (4 / mianownik), wynik straci liczbę dziesiętną, chociaż zmieniłem niektóre deklaracje typu danych z int na double. (Niektóre strony mówią mi o tym.) Może zrobię to źle.

Jak mogę rozwiązać ten problem?

Oto mój program.

#include <iostream>
using namespace std;


class Four
{
private:
    int inputedAccuracy;
    double pi;
    int denominator;
    int doneTermCounter;
    double oneTerm;
    int negativeController;

public:
    double question4()
    {
        cout << "Accuracy set at : " ;
        cin >> inputedAccuracy;
        cout << endl;
        pi = 0.0;
        denominator = 1.0;
        doneTermCounter = 0;

        negativeController = 1;
        cout << "Term" << "            " << "pi" << endl;
        cout << "1  " << "             " << "4" << endl;


        for (inputedAccuracy; inputedAccuracy > 0; inputedAccuracy -= 100)
        {
            for (int doneTerm = 0; doneTerm < 100; doneTerm++)
            {
                pi = pi + (negativeController * 4 / denominator);
                negativeController *= -1;
                denominator += 2;
                doneTermCounter++;
            }
            if (doneTermCounter >= 10000)
                cout << doneTermCounter << "             " << pi << endl;
            else
                if (doneTermCounter >= 1000)
                    cout << doneTermCounter << "            " << pi << endl;
                else
                    cout << doneTermCounter << "             " << pi << endl;
        }
        return 0.0;
    }
};

Dziękuję za uwagę!

questionAnswers(4)

yourAnswerToTheQuestion