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