Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Sehr einfaches Javascript, wo ist der Fehler?
Frage
Hallo,
ich lese gerade über Grundlagen des Programmierens (von highscore.de) und es lautet eine übung:
"Entwickeln Sie ein Programm in Javascript, das den Anwender auffordert, zwei Zahlen einzugeben. Addieren Sie die beiden Zahlen und geben Sie das Ergebnis auf den Bildschirm aus. "
Eigentlich sehr einfach dachte ich, aber es klappt irgendwie nicht, denn bei mir zeigt er immer die beiden zahlen hintereinander an, z.B. 43 statt 7 (von 4 und 3)
Hier mein Script:
"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Allgemeine Grundlagen der Programmierung</title>
<script type="text/javascript">
var a = prompt("Geben Sie die erste Zahl ein.");
var b = prompt("Geben Sie die zweite Zahl ein.");
var ergebnis = a + b;
alert(ergebnis);
</script>
</head>
<body>
</body>
</html>"
Wo ist der Fehler?
mfg
Antwort 1 von Röller
Die Eingaben werden als Strings interpretiert und durch den "+"-Operator aneinandergehängt. Abhilfe schafft da die Funktion parseInt():
http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int
http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int
Antwort 2 von m-a-d
hallo
Ob das nun die absolut richtige Lösung ist, weiß ich nicht, aber mit einem Pluszeichen werden die Zahlen nur verknüpft. Damit addiert wird, muß die Zeile mit
ergebnis = a + b; zu
ergebnis = a*1 + b*1 geändert werden.
NDT
m-a-d
Ob das nun die absolut richtige Lösung ist, weiß ich nicht, aber mit einem Pluszeichen werden die Zahlen nur verknüpft. Damit addiert wird, muß die Zeile mit
ergebnis = a + b; zu
ergebnis = a*1 + b*1 geändert werden.
NDT
m-a-d
Antwort 3 von Röller
Oder auch parseFloat():
http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_float
Je nach dem ..
http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_float
Je nach dem ..
Antwort 4 von pro_g
Okay, danke, das mit dem *1 funktioniert. Auch danke an den anderen Vorschlag.
Gruß
Gruß
Antwort 5 von rfb
wobei die Lösung aus den Antworten 1 u. 3 vorzuziehen ist, das andere ist eher Pfusch