我试图模拟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.我能做错什么?
答案 0 :(得分:5)
您必须将sum
声明为double
。