Ich möchte den gleitenden Durchschnitt der Bestandsdaten unter Verwendung der folgenden Formel aktiv berechnen:Wie wird ein anfänglicher gleitender Durchschnittswert in Java festgelegt?
public class Average {
private static double usdJpy;
private int counter = 1;
private double movingAverageUsdJpy_ = 100.5;
public void calculateAverage(){
ReadData myData = new ReadData();
usdGbp = myData.getUsdGbp();
usdJpy = myData.getUsdJpy();
System.out.println("Before: " + movingAverageUsdJpy_);
movingAverageUsdJpy_ = (counter * movingAverageUsdJpy_ + usdJpy)/(counter + 1);
counter++;
System.out.println("Moving Average: " + movingAverageUsdJpy_);
}
}
-> Zähler die Anzahl der Elemente im Array ist.
Meine Frage ist, da die Bestandsdaten bereits einen gleitenden Durchschnitt haben, möchte ich meine anfängliche MovingAverage-Wert zu diesem setzen (z. B. 97.883). Jedes Mal, wenn ich meine Methode anrufe, wird der letzte Wert, den mein Programm für den MovingAverage berechnet hat, jedoch mit dem Anfangswert überschrieben, den ich zuvor festgelegt habe, was zu einem falschen Ergebnis führt. Ich kann das Finale nicht wirklich verwenden, da der MovingAverage jedes Mal aktualisiert werden muss, wenn ich die Methode so richtig feststelle!
Gibt es eine Möglichkeit, dieses Problem zu beheben?
declare MovingAverage als global ist, nicht innerhalb der Methode –
Nur für das Protokoll: Sie sind sich der Tatsache bewusst, dass ** Doppel ** Macht nicht etwas zu verwenden, wenn man Berechnungen mit Geld macht? – GhostCat
Ich bin ein Anfänger, also was ist der beste Typ im Umgang mit Geld? – Emir54