forked from IF-LK-2020/rechenmaschine
DecimalFormat implementiert und bug fixes
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user