1

我正在尝试将 pi 的近似值模拟到小数点后 5 位。这是我所依据的公式:

在此处输入图像描述

但我没有使用无穷大,而是将其近似为小数点后 5 位。这是我拥有的代码,但我得到的结果是 0。我的猜测是因为整数除法,但我尝试将 0. 添加到除法之一,但它没有帮助:

#include <cmath>
#include <iostream>

int main() {

    int sum = 0;

    for (int k = 0; k < 5; ++k) {

        sum += pow(-1, k) / (2 * k + 1);

    }

    sum *= 4;

    std::cout << sum;

}

这部分:

sum += pow(-1, k) / (2 * k + 1);

我尝试更改为:

sum += ( pow(-1, k) + 0. ) / (2 * k + 1);

或者

sum += ( pow(-1, k) * 1. ) / (2 * k + 1);

但结果仍然是 0。我做错了什么?

4

1 回答 1

5

您必须声明sumdouble.

于 2012-10-31T15:52:33.470 回答