EvaluateSimpleIntegerExpression

MisaghZ
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 133
Registriert: 11. Okt 2007 15:50

EvaluateSimpleIntegerExpression

Beitrag von MisaghZ »

Hallo,
ich habe ein kleines Problem mit den Testfällen

bei EvaluateSimpleIntegerExpression wird der Term 5/10*100 berechnet
allerdings kann meine normale evaluate-methode ja nicht mit komma-zahlen umgehen, wodurch 5/10 auf 0 anstatt 0,5 gerundet wird....

wie kann ich das problem umgehen?

deadlock
Neuling
Neuling
Beiträge: 10
Registriert: 12. Apr 2012 16:38

Re: EvaluateSimpleIntegerExpression

Beitrag von deadlock »

Das ist auch so gedacht, dass die SimpleIntegerExpression so berechnet wird. In testSimpleIntegerExpressionEvaluate wird nämlich das Ergebnis 35 für den Ausdruck 3+5*6-5/10*100+2 erwartet, das Ergebnis erreicht man nur, wenn 5/10=0 ist.

fabian.wagner
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 152
Registriert: 19. Okt 2010 12:51

Re: EvaluateSimpleIntegerExpression

Beitrag von fabian.wagner »

MisaghZ hat geschrieben:Hallo,
ich habe ein kleines Problem mit den Testfällen

bei EvaluateSimpleIntegerExpression wird der Term 5/10*100 berechnet
allerdings kann meine normale evaluate-methode ja nicht mit komma-zahlen umgehen, wodurch 5/10 auf 0 anstatt 0,5 gerundet wird....

wie kann ich das problem umgehen?
Es gibt genau zwei Calculator während des gesamten ersten Praktikums. Diese beschreiben deine Rechenvorschriften...
Der eine (IntegerCalculator) kann nur mit Integer rechnen. Dabei beschreibt die Division eine Integerdivision. Es gibt schlicht und ergreifend einfach keine Kommazahlen!
Der andere (PointNumberCalculator) soll nur mit endlichen Kommazahlen rechnen.

Die Rechenvorschriften (Calculator) werden einmal am Anfang festgelegt und nie mehr wieder! (Also jedenfalls während eines evaluate()-Vorgangs)
Es ist also gewollt, dass 5/10=0 mit IntegerCalculator... Es ist auch gewollt, dass bei einer Expression weiter 1/10=0.1 mit PointNumberCalculator...

Antworten

Zurück zu „Archiv“