redmer: zeichenkette in zahl umwandeln?

ich hab gestern schon mal geschrieben und danach gefragt und dann wurde mir der hinweis gegeben es mit parseint() zu versuchen. leider hat das ned so richtig geklapt. ich kopiere einfach mal nen gekürzten quelltext mit hier rein vieleicht könnt ihr mir ja helfen. drückt einfach die buttons in der reihenfolge wie sie angeordnet sind. danke schon mal im vorraus.

<html>
<head>
<title></title>
</head>

<script language="JavaScript">
<!--
var zahl1;
var zahl2;
var erg;

function funktionplus()
{
 zahl1 = document.form.feld.value ;
 document.form.feld.value = "";
}

function funktionist()
{
 zahl2 = document.form.feld.value;
 document.form.feld.value = "";
 erg = zahl1 + zahl2;
 document.form.feld.value = erg;
}

//-->
</script>

<body>
<form name="form">
<input type="Text" name="feld" value="" size="" maxlength="">
<input type="Button" name="button1" value="5" onClick="this.form.feld.value = this.form.feld.value + 5;">
<input type="Button" name="button2" value="+" onclick="funktionplus()">
<input type="Button" name="button3" value="5" onClick="this.form.feld.value = this.form.feld.value + 5;">
<input type="Button" name="button4" value="=" onclick="funktionist()">
</form>

</body>
</html>

  1. mist. ich hab grad mitbekommen das der fehler wo anders liegen könnte, da die multiplikation funktioniert. aber warum nicht die addition?

    1. Hi,

      mist. ich hab grad mitbekommen das der fehler wo anders liegen könnte,

      Vermutlich nicht wirklich, denn ...

      da die multiplikation funktioniert. aber warum nicht die addition?

      ... Zeichenketten kann man nicht multiplizieren, weswegen ein String aus Ziffern automatisch in eine Zahl umgewandelt wird. Aber man kann Strings addieren, weswegen hier die Umwandlung unterbleibt.

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. ... Zeichenketten kann man nicht multiplizieren, weswegen ein String aus Ziffern automatisch in eine Zahl umgewandelt wird. Aber man kann Strings addieren, weswegen hier die Umwandlung unterbleibt.

        ... was redmer schon aus <http://forum.de.selfhtml.org/my/?t=92668&m=558881@Bernds Antwort> in dem anderen Thread hätte klar werden können.

        Doppelpostings sind schlecht, besonders auch für den Fragesteller.
        Gunnar

        --
        "Nobody wins unless everybody wins." (Bruce Springsteen)
        1. Doppelpostings sind schlecht, besonders auch für den Fragesteller.
          Gunnar

          Wenn man genau hingechaut haette, haette man gesehen, dass wohl beide Posts gleichzeitig geschrieben wurden.

          Klugscheisser sind schlecht, besonders auch für den Fragesteller.
          sirdan

          1. Wenn man genau hingechaut haette, haette man gesehen, dass wohl beide Posts gleichzeitig geschrieben wurden.

            Klugscheisser sind schlecht, besonders auch für den Fragesteller.

            sirdan,
            Wie wir seit Einstein wissen, ist gleichzeitig relativ.

            2004-10-21T16:58+02:00 Bernds Antwort* und
            2004-10-22T09:38+02:00 Cybaers Antwort
            sind für den gesunden Menschenverstand _nicht_ gleichzeitig.

            Wer lesen kann, ist im Vorteil. Und _nachdem_ du das gelernt hast, darfste auch klugscheißen.

            Gunnar

            *So klappt's auch mit der Verlinkung.

            --
            "Nobody wins unless everybody wins." (Bruce Springsteen)
            1. Hi,

              Wer lesen kann, ist im Vorteil. Und _nachdem_ du das gelernt hast, darfste auch klugscheißen.

              ACK :)

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    2. JS interpretiert die Eingaben als Text.
      Wenn man darauf einen arithmetischen Operator anwendet (wie z.B. * uder -), probiert JS, die Werte als Zahl zu interpretieren. Alles wunderbar.
      Leider ist der Operator + auch fuer Strings definiert (zum Konkatinieren); daher passiert wahrscheinlich folgende:

      a = "10";
      b = "2";
      c = a + b;

      => c = 102

      aber willst sicherlich: c = 12

      Daher kannst Du den Vorgang mit einem eindeutig arithmetischen Operator versehen, um JS zu zwingen die Werte als Zahlen zu interpretieren:

      c = a + b - 0 oder c = (a + b) * 1;

  2. Hi,

    vielleicht hättest du einfach auf parseInt() hören sollen ;-)

    <--- Hier gehört ein DocType hin.

    <html>
    <head>
    <title></title>
    </head>

    <--- Was ist das? Hast du schonmal von etwas zwischen Head und Body gehört? Nein? Ich auch nicht. Das JavaScript gehört in den Head oder den Body.

    <script language="JavaScript">
    <!--
    var zahl1;
    var zahl2;
    var erg;

    function funktionplus()
    {
    zahl1 = document.form.feld.value ;
    document.form.feld.value = "";
    }

    function funktionist()
    {
    zahl2 = document.form.feld.value;
    document.form.feld.value = "";

    zahl1 = parseInt(zahl1);
     zahl2 = parseInt(zahl2);
    //funktioniert doch...

    erg = zahl1 + zahl2;
    document.form.feld.value = erg;
    }

    //-->
    </script>

    <body>
    <form name="form">
    <input type="Text" name="feld" value="" size="" maxlength="">
    <input type="Button" name="button1" value="5" onClick="this.form.feld.value = this.form.feld.value + 5;">
    <input type="Button" name="button2" value="+" onclick="funktionplus()">
    <input type="Button" name="button3" value="5" onClick="this.form.feld.value = this.form.feld.value + 5;">
    <input type="Button" name="button4" value="=" onclick="funktionist()">
    </form>

    </body>
    </html>

    War doch garnicht so schwer, oder? Für sowas kannst du das nächste mal das Archiv befragen, oder du schaust dir mal die fantastische Seite http://de.selfhtml.org an, da kannst du sowas wie parseInt, oder deinen gesamten Quelltext (Dann aber richtig) als Beispiel bewundern.

    Gruß

    Phil

    --
    ie:{ fl:( br:> va:} ls:< fo:) rl:( n4:{ ss:) de:] js:| ch:? sh:( mo:) zu:)