在Pi计算程序中使用Decimal

时间:2015-01-28 03:31:52

标签: c#

private static void GeneralPiCalc ()
{
    const int count = 100;
    const int zero = 0;
    decimal pi = 0m;
    for (int i = zero; i <= count; i = i + 2)
    {
        decimal d = (decimal)i;
        if (i % 4 == 0)
        {
            pi = pi + 4 / ((d + 2) * (d + 3) * (d + 4));
        }
        else
        {
            pi = pi - 4 / ((d + 2) * (d + 3) * (d + 4));
        }
    }
    Console.WriteLine ("Pi is {0:D}", (3 + pi));
    Console.ReadLine ();
}

这是我的程序的代码。它不断给出:

  

System.FormatException:格式说明符无效。

     

at System.Number.FormatDecimal(十进制值,字符串格式,NumberFormatInfo信息)
  在System.Decimal.ToString(String format,IFormatProvider provider)
  在System.Text.StringBuilder.AppendFormat(IFormatProvider提供程序,字符串格式,对象[] args)
  在System.String.Format(IFormatProvider提供程序,String格式,Object [] args)
  在System.IO.TextWriter.WriteLine(String format,Object arg0)
  在System.IO.TextWriter.SyncTextWriter.WriteLine(String format,Object arg0)
  在System.Console.WriteLine(String format,Object arg0)
  在&gt; c:\ Users \ owner \ Documents \ Projects \ PiCalc \ PiCalc \ Program.cs中的PiCalc.MainClass.GeneralPiCalc()中:第33行   在PiCalc.MainClass.Main(String [] args)中的c:\ Users \ owner \ Documents \ Projects \ PiCalc \ PiCalc \ Program.cs:第10行

1 个答案:

答案 0 :(得分:2)

根据documentation on Decimal.ToString(),小数没有D格式说明符。

  

format参数可以是任何有效的标准数字格式说明符,但 D ,R和X除外,以及自定义数字格式说明符的任意组合。

您可以查看documentation on standard numeric format specifiers以查看decimal支持格式化的内容