Javascript input zum rechnen?
Hallo,
ich habe bis hierher einen Taschenrechner gebaut. Bisher kann man folgendes tun: Man kann auf einen Button drücken und dieser Wert wird dann in einem textarea angezeigt. Nun ist es ja so, dass ich nicht einfach den value vom textarea nehmen kann und ihn einfach ausrechnen lassen kann. Deshalb meine Frage: Wie kann ich nun diesen Wert ausrechnen und anzeigen lassen? Mein bisheriger Code:
Html
<textarea name="displa" id="display" cols="40" rows="7"></textarea>
<button value="1">1</button>
<button value="2">2</button>
<button value="3">3</button>
<button value="4">4</button>
<button value="5">5</button>
<button value="6">6</button>
<button value="7">7</button>
<button value="8">8</button>
<button value="9">9</button>
<button value="+">+</button>
<button value="-">-</button>
<button value="*">*</button>
<button value="/">/</button>
<button onclick="summe">=</button>
Javascript
$("button").click(function() {
const firedButtonValue = $(this).val();
var show = $("#display").val($("#display").val() + firedButtonValue);
});
function summe() {
$('#display').val() = Number(show);
}
1 Antwort
naja, erstens gibt es show in summe nicht weil show in einer anderen funktion steckt . wenn brauchst du da ein show ausserhalb der funktionen .
dann kannst du nicht einen GETTER nehmen und ein wert zuweisen
$('#display').val() =
sonder
$('#display').val(Number(show));
aber wenn du wirklich einen taschenrechner bauen willst , wirst du wohl entweder ein parser bauen müssen der die zahlen rausließt und die rechenoperationen oder irgendwas auf dem weg der eingaben schon zwischen speichert und ausrechnet . ausserdem musst du dann noch punkt vor strich rechnung beachten wenn du eine rechnung erst schreibst und dann ausrechnest .
zudem ist val() zwar ein wert , aber eigentlich zu 99% immer ein String , auch wenn JavaScript da recht gnädig ist, solltest du es immer mit parseInt in eine zahl umwandeln oder mit 1 multiplizieren damit der typ umgewandelt wird .
also praktisch musst du den text aus der area nehmen , zeichen für zeichen durchgehen und entsprechend dann in eine variable speichern,wenn keine zahl kommt dann das rechenzeichen festhalten in einer variable , danach dann die nächste zahl parsen und dann noch ein switch case machen um die rechenoperation als fall zu haben und dort dann mit der rechenoperation die variablen ausrechnen und als ergebnis festhalten .
das kannste dann am ende entweder wieder reinschreiben oder anhängen .
praktisch also für den anfang ohne array einfachst :
var zahl1 = 0;
var zahl2 = 0;
var ergebnis = 0;
var operation = "";
die füllen und mit einem switch case dann entsprechend rechnen
oder
var zahl[];
var welchezahl = 0;
var operation ="";
beim einlesen solange nur zahlen sind kann man jeden klick also zu der
zahl[welchezahl] packen
wenn ein rechenzeichen kommt muss man welchezahl um eins erhöhen , dann kann die nächste zahl in zahl[welchezahl] und dann bei gleich kann man anfangen zu rechnen z.b wenn man als operation + hat dann
if (operation == "+") {
ergebnis = zahl[0]*1 + zahl[1]*1;
}