コンパイラが私に言ったとき、私はF#でBigIntegerクラスのPow関数を使用していました:
この構成は非推奨です。このメンバーは、このタイプが.NET4.0タイプのSystem.Numerics.BigIntegerとバイナリ互換であることを確認するために削除されました。
十分に公平だと思いますが、すぐに代替品が見つかりませんでした。
ありますか?独自のPow関数のみを使用する必要がありますか?そして(どのように)それはNET4.0で置き換えられますか?
コンパイラが私に言ったとき、私はF#でBigIntegerクラスのPow関数を使用していました:
この構成は非推奨です。このメンバーは、このタイプが.NET4.0タイプのSystem.Numerics.BigIntegerとバイナリ互換であることを確認するために削除されました。
十分に公平だと思いますが、すぐに代替品が見つかりませんでした。
ありますか?独自のPow関数のみを使用する必要がありますか?そして(どのように)それはNET4.0で置き換えられますか?
パウン機能が使えます
let result = pown 42I 42
pownは、「乗算」と「1」を理解するすべてのタイプで機能します。
OCamlに基づく観点からF#を見ると、 OCamlNumモジュールにはpower_numがあります。OCamlタイプnumは任意精度の有理数であるため、任意のサイズの数値を処理できます。たとえば、シンボリックに計算できるため、CPUレジスタによって制限されません。また、numは次のように定義されているため
タイプnum=
| Int of int
| Big_int.big_intのBig_int
| Ratio.ratioの比率
比率タイプのため、精度を損なうことなく非常に小さな数を処理できます。
F#にはnumタイプがないため、Jackはnum.fsを持ち、NuGetを介して利用できるFSharp.Compatibility.OCamlモジュールを作成しました。
したがって、これを使用して必要なすべての精度を取得でき、num関数は負の指数を処理できます。