【问题标题】:Using Decimal in Pi calculating program在 Pi 计算程序中使用 Decimal
【发布时间】:2015-01-28 11:52:51
【问题描述】:
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:格式说明符无效。

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

【问题讨论】:

    标签: c#


    【解决方案1】:

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

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

    您可以查看documentation on standard numeric format specifiers 以了解decimal 对格式的支持

    【讨论】:

    • 其实很好奇为什么会有这样的限制
    • 没有奇思妙想的生活是什么?
    猜你喜欢
    • 2015-08-23
    • 2015-08-30
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    相关资源
    最近更新 更多