如何获得C#中的1000个十进制数字?

如何获得C#中的1000个十进制数字?,c#,pi,decimal-point,C#,Pi,Decimal Point,在C#中最多可以得到1000个十进制数字吗 我的程序需要至少1000个pi值的小数点。您需要使用一个三次精度算法。我不确定本地C#库,但GMP说它有一个C#包装器 也可以使用J#的BigDecimal 是,但不使用内置数据类型。是您能做的最好的,只有28到29个有效数字 您将需要一个任意精度的库,或者您需要重新检查您的设计并确定是否确实需要1000位十进制数字 如果你只是想计算出1000位的π,那么你可以用它来计算π的第n位。此时,您只需将结果存储在一个数组中如果您仍在寻找其他答案的替代方案,请

在C#中最多可以得到1000个十进制数字吗


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

您需要使用一个三次精度算法。我不确定本地C#库,但GMP说它有一个C#包装器

也可以使用J#的BigDecimal


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

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


如果你只是想计算出1000位的π,那么你可以用它来计算π的第n位。此时,您只需将结果存储在一个数组中

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


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


如果你只需要1000位数字,你可以在线查找并复制粘贴到你的程序中。如果你需要做任何算术运算,这都不会有帮助。一旦转换成内置数据类型,你将失去大部分精确度每当有人问这样的问题时,我的第一反应不是回答如何,而是问为什么。在这种情况下,好奇心压倒了我。你到底需要1000位精度做什么?我至少需要1000位十进制数字。但我的问题是,程序允许用户输入十进制数字的数量show@BenVoigt的确我有点惊讶,有一半的答案建议使用那个数字提取算法——它只适用于二进制数字。@Mysticial:嗯,看来普劳夫确实在什么地方发布了一个计算π的十进制数字的公式。。。但这个公式不是。事实上,我不明白这个公式是如何给出二进制甚至十六进制数字的(每个小数位数应该是
16^-k
(位值)乘以0-15范围内的某个整数(数字本身),我在上面的公式中看到了位的值,但是数字应该是什么并不是整数。@BenVoigt二进制数字的算法是准线性的。但是十进制数字的算法是二次或三次的。(我不记得是哪一个。)这就是为什么没有人使用它。我已经实现了二进制数字的BBP。它实际上非常棘手,因为它滥用幂模来“跳过”所有前面的数字。在我看来,它需要相当强的数学背景才能实现。@BenVoigt如果你想进一步讨论这个问题,请到休息室来。因为这完全是我的专业领域。lolyes,我至少需要1000位小数。但我的问题是,用户将是输入要显示多少位小数的人不要这样做.使用MP库!
 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]