Javaで平方根のような無理数を保存する最良の方法は何ですか? かなりの精度 (100 桁以上) が必要なため、float と double は適していません。BigDecimalですか?以前はそれを使用していましたが、奇妙な問題に遭遇しました.それは私のコードかもしれません. 私のコードは非常に複雑なので、他のものを作り直す前に、BigDecimal が正しい方法であることを確認したいと思います。
1916 次
3 に答える
3
すべての数値が同じ演算 (たとえば、すべての平方根) から得られたものである場合、計算結果の代わりにそれらのソース (たとえば、平方) を保存できます。数値がいくつかの計算から得られる場合、これをカプセル化するクラスを作成できます: SquareRoot
、CubedRoot
など。
たとえば、√2 は でnew SquareRoot(2)
あり、そのフィールドはlong
or double
(2) であり、おそらくtransient
キャッシュされた結果 ( としてBigDecimal
) になります。
于 2012-01-03T05:56:32.920 に答える
1
はい、BigDecimal
行く方法です。それは非常に確実に動作します - 奇妙な問題はおそらくパイロットエラーでした.
于 2012-01-03T05:33:56.827 に答える