Hallo zusammen!
Folgendes: Ich habe pi (π) und e (Euler) als "public static final String PI = ".." " bzw "public static final String E = "...." " Variablen gegeben. Beide auf seehehr viele Stellen genau.
Mein Programm liest eine Rechenaufgabe als Postfixnotation ein und je nach Rechenzeichen wird dann eine andere Methode aufgerufen und es wird losgerechnet.
Bei Zahlen funktioniert das auch wunderbar, allerdings habe ich jetzt pi und e und ich stehe auf dem Schlauch, wie ich die Eingabe mit den jeweiligen Werten verbinden soll.
Ein Beispiel evtl, um zu verstehen wie das ganze aussieht:
Mein erster Gedanke war die if-Abfrage dementsprechend anzupassen, aber nachdem ich wahrscheinlich alles mögliche an Kombinationen ausprobiert habe, musste ich nicht letztendlich geschlagen gegeben.
Meine Frage nun: wie gebe ich dem Programm zu verstehen, dass "pi" auch eine Zahl ist, mit der es rechnen soll ?
Als Ergänzung:
Die Methode "plus" ist mit BigDecimal-Eingabe.
Die Zahlen aus der Aufgabe werden auf einem Stapel gespeichert und abgerufen, sobald ein Rechenzeichen gefunden wird.
Folgendes: Ich habe pi (π) und e (Euler) als "public static final String PI = ".." " bzw "public static final String E = "...." " Variablen gegeben. Beide auf seehehr viele Stellen genau.
Mein Programm liest eine Rechenaufgabe als Postfixnotation ein und je nach Rechenzeichen wird dann eine andere Methode aufgerufen und es wird losgerechnet.
Bei Zahlen funktioniert das auch wunderbar, allerdings habe ich jetzt pi und e und ich stehe auf dem Schlauch, wie ich die Eingabe mit den jeweiligen Werten verbinden soll.
Ein Beispiel evtl, um zu verstehen wie das ganze aussieht:
Java:
String [] zahl = "pi 1 +".split("\\s");
BigDecimal erg, nr;
for (int i=0; i<zahl.length; i++) {
if(zahl[i].matches( "-?\\d+(\\.\\d+)?")) {
nr = new BigDecimal(zahl[i]);
Stapel.push(nr);
}
else {
if(zahl[i].equals("+")) {
erg = plus(Stapel.pop(), Stapel.pop());
Stapel.push(erg);
}
}
}
Mein erster Gedanke war die if-Abfrage dementsprechend anzupassen, aber nachdem ich wahrscheinlich alles mögliche an Kombinationen ausprobiert habe, musste ich nicht letztendlich geschlagen gegeben.
Meine Frage nun: wie gebe ich dem Programm zu verstehen, dass "pi" auch eine Zahl ist, mit der es rechnen soll ?
Als Ergänzung:
Die Methode "plus" ist mit BigDecimal-Eingabe.
Code:
plus (BigDecimal z1, BigDecimal z2)