我必须给程序一个参数,它必须使用" heron进程"它也必须有30个小数

时间:2016-04-14 11:24:04

标签: c#

 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;     

我的问题是我的时间不对。我不知道那里错了什么。我怎样才能改变时间以获得正确的东西?

1 个答案:

答案 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循环可以正常工作。