1

円周率の近似値を小数点以下5桁までシミュレートしようとしています。これは私がそれを基にしている公式です:

ここに画像の説明を入力してください

しかし、無限大を使用する代わりに、小数点以下5桁に概算しています。これは私が持っているコードですが、得られる結果は0です。私の推測は整数除算によるものですが、除法の1つに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

sumとして宣言する必要がありますdouble

于 2012-10-31T15:52:33.470 に答える