如何在C#中获得1000位小数?

时间:2012-07-08 02:38:36

标签: c# pi decimal-point

C#中是否可以获得最多1000位小数?

我的程序需要至少1000个小数点的pi值。

4 个答案:

答案 0 :(得分:3)

您可以使用数组来模拟数字,例如,如果您需要计算a(有100000位数)加b(有99999位数):

 a:     a[100000]     a[99999]      a[99998]   ... a[1]           a[0]
+b:                   b[9999]       b[99998]   ... b[1]           b[0]
----------------------------------------------------------------------------
                                     ...   a[1]+b[1]+Carry      a[0]+b[0]

答案 1 :(得分:2)

是的,但不使用内置数据类型。 Decimal是您能做的最好的,只有28到29位有效数字。

您将需要一个任意精度库,或者您需要重新访问您的设计并确定确实是否需要1000个十进制数字。

如果您只是尝试将Pi计算为1000位数,则可以使用functions来计算Pi的第n位数。此时,您只需将结果存储在数组

中即可

答案 2 :(得分:2)

如果您仍在寻找其他答案的替代方案,请查看Bailey Borwein Plouffe公式,以计算Pi的第n位数。您可以使用它来计算前1000位数字。

enter image description here

答案 3 :(得分:1)

您需要使用任意精度算术。我不确定本机C#库,但GMP说它有一个C#包装器。

你也可以使用J#的BigDecimal。

Here's a similar question.