Max: Addieren

Kann mir jemand sagen warum dies nicht klappt? Es addiert die Zahlen leider nicht:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>

<script language="JavaScript">
function addition()
{var a,b, summe;
a=prompt("Zahl1");

b=prompt("Zahl2");

summe=a+b;

alert(summe);
}
</script>
</head>
<body onload="addition()">
</body>
</html>

  1. Hallo Max.

    Kann mir jemand sagen warum dies nicht klappt? Es addiert die Zahlen leider nicht:

    […]
    a=prompt("Zahl1");

    b=prompt("Zahl2");

    […]

    Lasse dir einmal den Typ von a und b ausgeben.

    Entweder rechnest du beide mal 1 oder verwendest parseInt.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. »» Lasse dir einmal den Typ von a und b ausgeben.

      wenn ich mich nicht irre ist der typ "undefined" weil die variablen einfach keinen wert haben. *ohne moos nix los* um etwas zu addieren musst du den variablen auch schon Zahlen zuweisen:

      a = 1; b = 2;

      und schon gehtz.

      MfG Kambfhase

      1. Hallo,

        wenn ich mich nicht irre ist der typ "undefined" weil die variablen einfach keinen wert haben.

        Nimm's mir nicht übel, aber diese Aussage ist "Krambf".  ;-)
        Die beiden Variablen a und b *haben* ja durch die Zuweisung einen Wert und sogar einen Typ. Allerdings gibt prompt() eben den Typ String zurück, und der Operator '+' bewirkt, wenn mindestens einer der Operanden ein String ist, eine einfache Stringverkettung, aber keine Addition.

        und schon gehtz.

        Erst denken, dann schreiben, und schon geht's.

        Schönen Abend noch,
         Martin

        --
        Ja, ja... E.T. wusste schon, warum er wieder nach Hause wollte.
        1. Hallo,

          danke für eure Antworten. Leider habe ich es nicht ganz kappiert wie ich es machen muss. Könnt ihr mir vielleicht einen Beispielcode zeigen? Multiplizeren, Subtrahieren, Dividieren klappt bei mir, nur Addieren klappt nicht.

          Danke

          1. Hello out there!

            danke für eure Antworten. Leider habe ich es nicht ganz kappiert wie ich es machen muss. Könnt ihr mir vielleicht einen Beispielcode zeigen?

            Den hast du schon bekommen. In zweifacher Ausfertigung.

            See ya up the road,
            Gunnar

            --
            “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
            1. Danke nun klappt es.

              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
              "http://www.w3.org/TR/html4/loose.dtd">
              <html>
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              <title>Unbenanntes Dokument</title>

              <script language="JavaScript">
              function addition()
              {var a,b, summe;
              a=prompt("Zahl1");

              b=prompt("Zahl2");
              c=parseInt(a);
              d=parseInt(b);
              summe=c+d;

              alert(summe);
              }
              </script>
              </head>
              <body onload="addition()">
              </body>
              </html>

              1. Hello out there!

                Danke nun klappt es.

                Glückssache – wegen

                <script language="JavaScript">

                Das erforderliche type-Attribut fehlt: <http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=JavaScript-Bereiche in HTML definieren>

                function addition()
                {var a,b, summe;
                a=prompt("Zahl1");

                b=prompt("Zahl2");
                c=parseInt(a);
                d=parseInt(b);
                summe=c+d;

                alert(summe);
                }

                Ist das gewollt, dass die Variablen c und d (im Gegensatz zu a, b und summe) global sind, also auch außerhalb der Funktion addition() gelten?

                Du hättest auch einfach alert(parseInt(a) + parseInt(b)); schreiben können.

                See ya up the road,
                Gunnar

                --
                “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  2. Hi,

    ich vermute, weil deine Eingaben wie in inputs auch zunächst mal als Strings ihr Dasein fristen und somit "+" der concat-Operator ist.
    Funktionen wie parseInt dürften dir weiterhelfen.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(