DecimalFormat implementiert und bug fixes

This commit is contained in:
2021-04-19 09:30:14 +02:00
parent 8debe58032
commit 120a36735a

View File

@@ -1,5 +1,5 @@
import java.util.Scanner; import java.util.Scanner;
import java.text.DecimalFormat;
/** /**
* Hauptklasse des Projekts * Hauptklasse des Projekts
*/ */
@@ -44,7 +44,7 @@ public class Rechenmaschine {
} }
run(); run();
System.out.println("Ergebnis der Ausführung: " + result);
} }
public boolean scanne( String pEingabe ) { public boolean scanne( String pEingabe ) {
@@ -292,9 +292,13 @@ public class Rechenmaschine {
return false; return false;
} else { } else {
tokenlist.toLast(); tokenlist.toLast();
if(!tokenlist.getContent().getToken().equals(")")){
if (tokenlist.hasAccess()) {
if (!tokenlist.getContent().getToken().equals(")")) {
tokenlist.append(new Token("OPERAND", currentToken.toString()));
}
} else {
tokenlist.append(new Token("OPERAND", currentToken.toString())); tokenlist.append(new Token("OPERAND", currentToken.toString()));
return true;
} }
return true; return true;
} }
@@ -412,19 +416,19 @@ public class Rechenmaschine {
//Durchlaufe die Tokenliste //Durchlaufe die Tokenliste
while(pList.hasAccess()){ while(pList.hasAccess()){
// Token gleich ( dann entferne ihn // Token gleich ( dann entferne ihn
if(pList.getContent().getToken().equals("(")){ if(pList.getContent().getToken().equals("(")) {
pList.remove(); pList.remove();
//anschließend durchlaufe solange, bis auf ) gestoßen wird //anschließend durchlaufe solange, bis auf ) gestoßen wird
while(!pList.getContent().getToken().equals(")")){ while (!pList.getContent().getToken().equals(")")) {
//wenn noch nicht am ende der tokenliste //wenn noch nicht am ende der tokenliste
if(pList.hasAccess()) { if (pList.hasAccess()) {
//wenn ( erneutvorkommt //wenn ( erneutvorkommt
if (pList.getContent().getToken().equals("(") ) { if (pList.getContent().getToken().equals("(")) {
// rufe die methode mehrereKlammern auf und speicher das ergebnis als neues Token in newTokenlist // rufe die methode mehrereKlammern auf und speicher das ergebnis als neues Token in newTokenlist
berechnet = mehrereKlammern(pList); berechnet = mehrereKlammern(pList);
newTokenlist.append(new Token("OPERAND",String.valueOf(berechnet))); newTokenlist.append(new Token("OPERAND", String.valueOf(berechnet)));
} }
//wenn der Token nicht ) ist dann soll dieser in newTokenlist eingefügt werden und anschließend entfernt werden //wenn der Token nicht ) ist dann soll dieser in newTokenlist eingefügt werden und anschließend entfernt werden
if (!pList.getContent().getToken().equals(")")) { if (!pList.getContent().getToken().equals(")")) {
@@ -438,7 +442,11 @@ public class Rechenmaschine {
//newTokenlist wird ausgerechnet //newTokenlist wird ausgerechnet
berechnet = berechne(newTokenlist); berechnet = berechne(newTokenlist);
//und in die Tokenliste eingefügt //und in die Tokenliste eingefügt
pList.insert(new Token("OPERAND", String.valueOf(berechnet))); if (pList.hasAccess()) {
pList.insert(new Token("OPERAND", String.valueOf(berechnet)));
} else {
pList.append(new Token("OPERAND", String.valueOf(berechnet)));
}
newTokenlist = new List<Token>(); newTokenlist = new List<Token>();
//hier wurde nun 1 klammer gelöst //hier wurde nun 1 klammer gelöst
} }
@@ -505,9 +513,10 @@ public class Rechenmaschine {
public void run() { public void run() {
klammerRegel(tokenlist); klammerRegel(tokenlist);
punktVorStrich(tokenlist); punktVorStrich(tokenlist);
result=berechne(tokenlist); double result=berechne(tokenlist);
DecimalFormat format = new DecimalFormat("#,##0.####");
String resultString=format.format(result);
System.out.println("Ergebnis der Ausführung: " + resultString);
} }
} }