molily: Usereingabe auswerten

Beitrag lesen

Hallo,

Wenn du Terme ausrechnen willst, ist eval() schon okay, das Problem ist eher, dass eval() JavaScript-Expressions, also JavaScript-Code ausrechnen kann, mehr aber nicht. Da hast du also nur die paar primitiven Operatoren von JavaScript zur Verfügung, und z.B. Potenzen werden in JavaScript nicht über einen Operator, sondern über eine Methode des Math-Objektes durchgeführt. Die Formel zu normalisieren ist wahrscheinlich die einfachste Aufgabe, da sehe ich keine nennenswerten Schwierigkeiten. Aber das Ausrechnen geht beileibe nicht mit einfach mit eval() bzw. es wird ein größerer Aufwand sein, aus der Formel eine gültige JavaScript-Expression zu machen, die du dann getrost an eval() verfüttern kannst - "1,5x^4" bei x = 5 wird etwa zu eval("1,5 * Math.pow(5, 4)") usw. Dann musst du natürlich die Operatorenrangfolge beachten, aber die dürfte den üblichen Rechenregeln entsprechen. (Mit ganz viel Aufwand kann man sicher auch ohne Expressions und eval arbeiten, ich sehe hier aber keien nennenswerten Vorteil.)

Mathias