我在SharpDevelop这个非常简单的程序中犯了什么错误?

时间:2014-10-15 23:31:53

标签: c# c#-4.0 sharpdevelop

我只是一个初学者,我在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不会报告任何“错误”。

有人可以指出我犯的错误吗?

1 个答案:

答案 0 :(得分:5)

这是因为您使用的是整数运算,所以每次表达式((-1)^n)/(2*n+1)四舍五入为0
尝试使用以下行替换pi计算:

pi += (float)Math.Pow(-1f, n) / (2*n+1);

顺便说一句,^运算符不是取幂。