任意の長さの小数点を持つ数値を計算したい(特定の数値に対して小数点以下100桁を使用すると仮定する)。 JavaでBigDecimal(または別のクラス)を使った方がはるかに高い精度を得る
//Take the square root of 2 for 100 digits in total.
public class Main {
public static void main(String[] args) {
BigDecimal root2 = new BigDecimal(Math.pow(2, 0.5));
root2 = root2.setScale(99, BigDecimal.ROUND_HALF_UP);
System.out.println(root2);
}
}
そして、このプログラムの出力:
1.414213562373095145474621858738828450441360473632812500000000000000000000000000000000000000000000000
はバイトの記憶で初心者の背景を持って、私はここでの問題は、出力形式、または私はまだ届かないという事実のいずれかであると認識しますそれが期待しているメモリを使用していないので、私が探している精度です。助言がありますか?これは高い精度を得ることは可能ですか?私はMathematicaに目を向けるのではない。
説明のために:私は100桁の完全精度を得ようとしています(ゼロはここに属しません)。
現在100桁です。いくら欲しいですか? –
それは間違った長さではありません。 'sqrt(2)'は非合理で、そのような末尾のゼロを持つべきではありません。それは私が探している全体の番号を格納しません。 –
可能な答えはhttp://stackoverflow.com/questions/13649703/square-root-of-bigdecimal-in-javaを参照してください。 – bithead61