当我的编译器告诉我时,我正在使用 F# 中 BigInteger 类的 Pow 函数:
此构造已弃用。此成员已被删除以确保此类型与 .NET 4.0 类型 System.Numerics.BigInteger 二进制兼容
我想这很公平,但我没有立即找到替代品。
有吗?我们应该只使用我们自己的 Pow 函数吗?以及(如何)它会在 NET4.0 中被取代?
当我的编译器告诉我时,我正在使用 F# 中 BigInteger 类的 Pow 函数:
此构造已弃用。此成员已被删除以确保此类型与 .NET 4.0 类型 System.Numerics.BigInteger 二进制兼容
我想这很公平,但我没有立即找到替代品。
有吗?我们应该只使用我们自己的 Pow 函数吗?以及(如何)它会在 NET4.0 中被取代?
您可以使用 pown 功能
let result = pown 42I 42
pown 适用于任何“理解”乘法和“一”的类型。
如果从基于OCaml的角度来看F#,那么OCaml Num模块就有power_num。由于 OCaml 类型 num 是任意精度的有理数,它们可以处理任何大小的数字,例如,它们不受 CPU 寄存器的限制,因为它们可以象征性地进行数学运算。也因为 num 被定义为
输入数字 =
| 整数
| Big_int 的 Big_int.big_int
| 比率比率
由于 Ratio 类型,它们可以处理非常小的数字而不会损失精度。
由于 F# 没有 num 类型,Jack创建了FSharp.Compatibility.OCaml模块,该模块具有num.fs并且可通过 NuGet 获得。
因此,您可以使用它获得所需的所有精度,并且 num 函数可以处理负指数。