【发布时间】:2009-07-23 04:55:59
【问题描述】:
我正在重新提出这个问题,并使其更加具体:是否有支持任意精度数字的 .NET 框架库?
【问题讨论】:
-
您正在寻找的是“任意精度”十进制库,或者可能是“bignum”类型库。我个人没有在.net 中使用过任何此类库,但也许这个问题会有所帮助。 stackoverflow.com/questions/621684/…
我正在重新提出这个问题,并使其更加具体:是否有支持任意精度数字的 .NET 框架库?
【问题讨论】:
您可以等待 .NET 4.0 吗?他们是bringing BigInteger directly into the Framework。
另一方面,如果你等不及了,那么J# runtime includes built-in support for java.math.BigInteger and BigDecimal。就像 .NET Framework 的其余部分一样,它是可再分发的。
【讨论】:
您可以尝试使用尾数的旧方法。基本上你可以有一个 64 位整数来存储数字,然后是一个 64 位整数来存储指数(可能是负数)。您可以构建自己的对象类型并重载算术运算符,因此它将被视为单个数字。这需要一些工作,但我认为这将是您的最佳选择。
【讨论】:
GnuMpDotNet:http://www.emilstefanov.net/Projects/GnuMpDotNet/
如果您需要纯 .NET,请考虑查看以下内容:http://www.codeplex.com/IntX/
【讨论】:
也许令人惊讶的是,Bailey-Borwein-Plouffe formula 提供了一个增量过程来计算 pi 的下一个二进制或十六进制数字,而无需存储所有先前的数字。
【讨论】:
如果你想要一个非常快的库,那么试试:
【讨论】:
您可以使用十进制类型,它为您提供 28-29 位有效数字
【讨论】:
【讨论】: