2

我正在重新提出这个问题,并使其更加具体:是否有一个.NET 框架库支持具有任意精度数字的数字?

4

8 回答 8

6

你能等待 .NET 4.0 吗?他们将 BigInteger 直接带入 Framework中。

另一方面,如果您迫不及待,那么J# 运行时包含对 java.math.BigInteger 和 BigDecimal 的内置支持。这与 .NET Framework 的其余部分一样是可再分发的。

于 2009-10-30T01:03:59.663 回答
5

这里有几个选项。

一个不错的选择是W3b.Sine,它是原生 C#/.NET,支持任意精度浮点值。

如果您只处理整数值,IntX提供对任意精度整数值的支持。一个可能更成熟的选项是C# BigInt,但同样,它不支持浮点运算。

于 2009-11-04T01:48:03.417 回答
3

您可以尝试尾数的旧方法。基本上你可以有一个 64 位整数来存储数字,然后是一个 64 位整数来存储指数(可能是负数)。您可以构建自己的对象类型并重载算术运算符,因此它将被视为单个数字。这将需要一些工作,但我认为这将是您的最佳选择。

于 2009-07-23T05:19:39.320 回答
3

GnuMpDotNet:http ://www.emilstefanov.net/Projects/GnuMpDotNet/

如果您需要纯 .NET,请考虑查看:http: //www.codeplex.com/IntX/

于 2009-11-02T10:54:45.500 回答
2

也许令人惊讶的是,Bailey-Borwein-Plouffe 公式提供了一个增量过程来计算 pi 的下一个二进制或十六进制数字,而无需存储所有先前的数字。

于 2009-10-24T05:12:07.153 回答
2

如果您想要一个非常快速的库,请尝试:

http://www.emilstefanov.net/Projects/GnuMpDotNet/

于 2009-11-05T17:18:01.507 回答
1

您可以使用十进制类型,它为您提供 28-29 位有效数字

于 2009-07-23T04:57:43.997 回答
1

这是一篇关于如何表示无限数字的好文章。

http://dobbscodetalk.com/index.php?option=com_myblog&show=Basic-Arithmetic-with-Infinite-Integers.html&Itemid=29

祝你好运

于 2009-10-24T05:03:44.317 回答