2

Javaで平方根のような無理数を保存する最良の方法は何ですか? かなりの精度 (100 桁以上) が必要なため、float と double は適していません。BigDecimalですか?以前はそれを使用していましたが、奇妙な問題に遭遇しました.それは私のコードかもしれません. 私のコードは非常に複雑なので、他のものを作り直す前に、BigDecimal が正しい方法であることを確認したいと思います。

4

3 に答える 3

3

すべての数値が同じ演算 (たとえば、すべての平方根) から得られたものである場合、計算結果の代わりにそれらのソース (たとえば、平方) を保存できます。数値がいくつかの計算から得られる場合、これをカプセル化するクラスを作成できます: SquareRootCubedRootなど。

たとえば、√2 は でnew SquareRoot(2)あり、そのフィールドはlongor double(2) であり、おそらくtransientキャッシュされた結果 ( としてBigDecimal) になります。

于 2012-01-03T05:56:32.920 に答える
1

はい、BigDecimal行く方法です。それは非常に確実に動作します - 奇妙な問題はおそらくパイロットエラーでした.

于 2012-01-03T05:33:56.827 に答える
1

JScienceのようなものを確認してください。桁数とそれに続く必要な精度を設定できる 10 進クラスがあります。

このようなものが必要です。

于 2012-01-03T05:33:05.327 に答える