我只是一个初学者,我在SharpDevelop上做了一个非常简单的程序(C#),但它不起作用。
这是:
public static void Main(string[] args)
{
float pi;
int n;
pi=1;
for(n=1; n<1000; n++)
{
pi=pi+((-1)^n)/(2*n+1);
Console.WriteLine(""+pi);
}
Console.ReadKey(true);
}
它应该只计算pi,但它只返回很多1s而不是...... SharpDevelop不会报告任何“错误”。
有人可以指出我犯的错误吗?
答案 0 :(得分:5)
这是因为您使用的是整数运算,所以每次表达式((-1)^n)/(2*n+1)
四舍五入为0
。
尝试使用以下行替换pi
计算:
pi += (float)Math.Pow(-1f, n) / (2*n+1);
顺便说一句,^
运算符不是取幂。