用于任意数字精度的.NET Framework库

时间:2009-07-23 04:55:59

标签: .net precision

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

9 个答案:

答案 0 :(得分:6)

你能等待.NET 4.0吗?他们是bringing BigInteger directly into the Framework

另一方面,如果你不能等,那么J# runtime includes built-in support for java.math.BigInteger and BigDecimal。这可以像.NET Framework的其余部分一样重新发布。

答案 1 :(得分:5)

这里有一些选择。

一个很好的选择是W3b.Sine,它是本机C#/ .NET,并且支持任意精度浮点值。

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

答案 2 :(得分:3)

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

答案 3 :(得分:3)

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

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

答案 4 :(得分:2)

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

答案 5 :(得分:2)

如果你想要一个非常快的库,那么试试:

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

检查此链接http://jsfromhell.com/classes/bignumber是否为javascript代码,但您可以使用任何语言或C#轻松将其转换为您自己的链接。

答案 8 :(得分:1)