public static BigDecimal bessereZieheWurzel(int zahl){
BigDecimal bessereZahl = new BigDecimal(zahl);
BigDecimal x = new BigDecimal(zahl);
BigDecimal zwei = new BigDecimal(2);
BigDecimal endErg = bessereZahl;
BigDecimal zwischenErg = new BigDecimal(0);
BigDecimal epsilon = new BigDecimal(0.000000000000000000000000000001);
int anzahlSchritte = 1;
BigDecimal variable = new BigDecimal(zahl);
zwischenErg = bessereZahl.divide(x,30, RoundingMode.DOWN).add(x);
zwischenErg = zwischenErg.divide(zwei,30, RoundingMode.DOWN);
BigDecimal letzterDurchlauf = zwischenErg;
x=zwischenErg;
while(letzterDurchlauf.subtract(endErg).compareTo(epsilon) == 1);
endErg = variable.divide(x,30, RoundingMode.DOWN).add(x);
endErg = endErg.divide(zwei,30, RoundingMode.DOWN);
anzahlSchritte ++;
return endErg;
我的问题是我的时间不对。我不知道那里错了什么。我怎样才能改变时间以获得正确的东西?
答案 0 :(得分:0)
while(letzterDurchlauf.subtract(endErg).compareTo(epsilon) == 1);
这行代码中发生了什么?
答案是:什么都没有。绝对没有。
要解决此问题,请执行以下操作:
while(letzterDurchlauf.subtract(endErg).compareTo(epsilon) == 1)
{
//Stuff you want to run goes in here
}
现在你的while循环可以正常工作。