6

当我的编译器告诉我时,我正在使用 F# 中 BigInteger 类的 Pow 函数:

此构造已弃用。此成员已被删除以确保此类型与 .NET 4.0 类型 System.Numerics.BigInteger 二进制兼容

我想这很公平,但我没有立即找到替代品。

有吗?我们应该只使用我们自己的 Pow 函数吗?以及(如何)它会在 NET4.0 中被取代?

4

2 回答 2

14

您可以使用 pown 功能

let result = pown 42I 42

pown 适用于任何“理解”乘法和“一”的类型。

于 2009-12-02T14:25:34.913 回答
2

如果从基于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 函数可以处理负指数。

于 2013-09-10T14:30:06.103 回答