尝试使用 for 循环计算 Pi 只给出 3

Trying to calculate Pi using a for loop only gives 3

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
float pi =0;
bool add = true;
for (int i =1; i < 30000; i+=2) {
    if (add) {
        pi = pi + (4/i);
        add = false;
    } else {
        pi = pi - (4 / i);
        add = true;

    }
}
cout << setprecision(18);
cout << pi;
return 0;
}

然而我的输出只有3!一直……为什么会这样?我的逻辑有什么问题?

是代码有问题还是莱布尼茨系列与计算机关系不好?

pi = pi + (4/i);

请改为pi = pi + 4.0 / i;。整数除以整数是整数除法,不会产生浮点结果。