6

コンパイラが私に言ったとき、私はF#でBigIntegerクラスのPow関数を使用していました:

この構成は非推奨です。このメンバーは、このタイプが.NET4.0タイプのSystem.Numerics.BigIntegerとバイナリ互換であることを確認するために削除されました。

十分に公平だと思いますが、すぐに代替品が見つかりませんでした。

ありますか?独自のPow関数のみを使用する必要がありますか?そして(どのように)それはNET4.0で置き換えられますか?

4

2 に答える 2

14

パウン機能が使えます

let result = pown 42I 42

pownは、「乗算」と「1」を理解するすべてのタイプで機能します。

于 2009-12-02T14:25:34.913 に答える
2

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関数は負の指数を処理できます。

于 2013-09-10T14:30:06.103 に答える