プロが教えるわが家の防犯対策術!

import java.lang.Math;

public class NewtonMethod {
public static void main(String args[]){
double x = 0.785;
while (true){
double x2 = x * 2;
double xN = x - (Math.cos(x2) - x2 + 1)/(- 2 * Math.sin(x2) - 2);
if (xN >= x){
break;
}
x = xN;
}
System.out.println(x);
}
}

このソースコードの求められたxを有効数字6桁で求めたいのですがどうすればいいのでしょうか?
BigDecimal bi = new BigDecimal(String.valueOf(x));
x =bi.setScale(5,BigDecimal.ROUND_HALF_UP).doubleValue();
というのをどこかに入れればいいというところまではわかりましたが、さっきから実行してもうまくいきません;
どなたか助けてください。よろしくお願いします。

A 回答 (1件)

どう上手くいかないのでしょうか?


具体的におっしゃってください。

ちなみにそのコードを差し込んでも
「有効数字6桁」
は作れません。
あくまで
「小数点以下6位で四捨五入」
しているに過ぎません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!