【问题标题】:Is there support for arbitrary precision arithmetic in C#?C# 中是否支持任意精度算术?
【发布时间】:2012-04-01 11:09:19
【问题描述】:

C# 是否支持任意精度算术(我认为这也称为 bignums)?

如果不支持,哪些库支持它?

【问题讨论】:

标签: c# winforms math bignum arbitrary-precision


【解决方案1】:

有一个BigInteger 结构支持任意大小的整数。

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx

不过,没有浮点数。

【讨论】:

  • BigInt 不支持任意精度,它支持任意大的整数。它只支持整数。如果您想要任意精度,则需要 BigNum 类。
【解决方案2】:

你已经找到大整数了;如果您需要大有理数(即分子和分母都是大整数的分数),您可以使用 Solver 库中的 Rational 类:

http://msdn.microsoft.com/en-us/library/microsoft.solverfoundation.common.rational(v=vs.93).aspx

【讨论】:

    【解决方案3】:

    F# 在 Microsoft.FSharp.Math.BigNum 有一个 BigNum 类型,您应该也可以在 C# 中使用它。

    这种类型存在于 F# Powerpack 中。下载它并引用适当的 DLL(我想它是 FSharp.Powerpack.Dll,但您需要一些试验和错误)。

    【讨论】:

    • fsharp sidnt 出现在 intellisense 中,所以我用 csharp 代替,它没有 Microsoft.CSharp.Math.BigNum,正如我所说的 Microsoft.FSharp... 也不存在
    • 啊,谢谢,我添加了参考,现在我可以使用存在的 Microsoft.FSharp,但不能使用 Mi..ft.FSharp.Math.BigNum?
    • 这只是告诉你我不应该发布 F# 建议,今天才开始使用它......它是 F# Powerpack 的一部分。稍等,我会再次编辑
    • 谢谢,但我只是在查看智能感知时在 System.Numerics 下找到了它
    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2015-10-29
    • 2013-02-09
    相关资源
    最近更新 更多