Kutschera Michaela: Addieren

Hallo!
Ich hab ein Problem mit dem Addieren. Und zwar möchte ich, dass man in zwei Felder etwas eingeben kann und diese beiden Felder anschließend zusammen gerechnet werden.
Leider ergibt bei mir aber immer folgendes:
100+100=100100

statt richtigerweise:
100+100=200

was mache ich falsch? Kann mir jemand weiterhelfen?

DANKE und LG
Michi

  1. Hallo Kutschera,

    deine Daten werden als String verarbeitet anstatt als Integer. Abhilfe schafft entweder parseInt() oder, weniger schoen, vor der Addition mit 1 multiplizieren.

    Gruß,

    Dieter

    1. Hello out there!

      entweder parseInt() oder, weniger schoen, vor der Addition mit 1 multiplizieren.

      Weniger schön? Aber schneller!

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. Hello,

    JavaScript entnimmt Eingabefeldern immer einen String und keine Zahlen. Bei Strings wirkt der + Operator wie eine Konkatenation, also ein aneinanderfügen. Du musst JavaScript mitteilen, dass du rechnen willst, schau dir dazu die Funktion parseInt() und seinen großen Bruder parseFloat() an. Um Problemen aus dem Weg zu gehen, kannst du die Werte vorher mit isNaN prüfen.

    MfG
    Rouven

    --
    -------------------
    Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
  3. Leider ergibt bei mir aber immer folgendes:
    100+100=100100

    statt richtigerweise:
    100+100=200

    was mache ich falsch? Kann mir jemand weiterhelfen?

    du hast bei der Verarbeitung in deinem Fall Strings. Wenn du zwei Strings miteinander "addierst", dann werden sie aneinander gehängt.
    du musst die strings in integer oder float variablen ändern!
    dies kannst du mit den funktionen

    parseInt()
    parseFloat()

    machen.

    wenn du nun addierst, sollte die richtige Lösung dabei herauskommen!

    Gruß Timo

  4. Hallo Michi,

    Leider ergibt bei mir aber immer folgendes:
    100+100=100100

    wenn du die Zahlen so als Anweisung im Quellcode stehen hast, sollte auch das gewünschte Ergebnis 200 rauskommen.
    Dein Problem ist aber, dass die Inhalte von Formularfeldern grundsätzlich vom Typ String sind, und für Strings ist das Symbol '+' eben der Operator für die Verkettung.
    Du musst also dafür sorgen, dass die Variableninhalte (ich nehme der Einfachheit halber mal a und b) als Zahlenwerte interpretiert werden. Entweder du formulierst die Umwandlung ganz explizit, oder du baust eine eigentlich sinnlose Operation mit ein, die die Umwandlung implizit erzwingt.
    Beispiel:

    var a = document.formular.textfeld1.value;  // z.B. "100"
      var b = document.formular.textfeld2.value;  // z.B. "100"

    var c = a + b;           // ergibt "100100"
      var x = Number(a) + b;   // ergibt 200
      var y = parseInt(a) + b; // ergibt 200
      var z = a*1 + b;         // ergibt 200

    In allen drei Fällen (x, y, z) erzwinge ich die Umwandlung von a in einen Zahlenwert - bei z dadurch, dass die Multiplikation eben nur für Zahlen definiert ist. Dadurch, dass *einer* der beiden Operanden dann eine Zahl ist und kein String mehr, führt der '+' Operator eine normale Addition durch.

    So long,
     Martin

    --
    Irgendwann in grauer Vorzeit benutzte einer unserer prähistorischen Vorfahren ein Schimpfwort anstelle der Keule.
    Die Zivilisation hatte begonnen.
  5. Hi,

    Leider ergibt bei mir aber immer folgendes:
    100+100=100100

    na sowas. Dabei weiß doch jeder, dass 100+100=1000 ist.

    Cheatah

    P.S.: Es gibt 10 Sorten von Menschen: Solche, die das Binärsystem verstehen, und solche, die es nicht tun.

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      P.S.: Es gibt 10 Sorten von Menschen: Solche, die das Binärsystem verstehen, und solche, die es nicht tun.

      Es gibt manchmal freundliche und manchmal weniger freundliche Lebewesen.
      mfg
      Henne