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