Ankündigung

Einklappen
Keine Ankündigung bisher.

Zahlen wollen nicht so wie ich will

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zahlen wollen nicht so wie ich will

    Moin zusammen,

    ich steh gerade auf dem Schlauch.
    Ich erhalte eine Zahl und die schaut so als bsp. aus
    Code:
    40,140
    Desweiteren steht aktuell in einem span der Wert
    Code:
    40,100
    Nun möchte ich mit diesen Zahlen rechnen, erhalte aber immer NaN also Not a Number.
    Habe in der Consolen-Ausgabe verschiedenes versucht und das kam dabei rum:
    Code:
    Normal: NaN | String: NaN | ParseFloat: NaN | ParseFloat and Number: NaN | Only Number: NaN
    So sieht es aus (dazu sei gesagt http.responseText ist alles richtig & i_aktuell = 30):
    HTML-Code:
    var rueckgabe = http.responseText;
    var aktueller_wert = document.getElementById('countdown-minutes');
    var howmuchisthefish;
    if (rueckgabe == "Fehler im System !") {
                            document.getElementById('countdown-minutes').innerHTML = "Time out!";
                            document.getElementById('changed_or_not').innerHTML = " - (Error)";
                            i = 10;
                        } else {
                            if (aktueller_wert == rueckgabe) {
                                document.getElementById('changed_or_not').innerHTML = " - (Nothing changed)";
                            } else {
                                if (aktueller_wert == "Time out!") {
                                    document.getElementById('changed_or_not').innerHTML = " - (Reloading...)";
                                } else {
                                    howmuchisthefish = Number(parseFloat(rueckgabe)) - Number(parseFloat(aktueller_wert));
                                    console.log("Normal: " + howmuchisthefish + " | String: " + howmuchisthefish.toString() + " | ParseFloat: " + parseFloat(howmuchisthefish) + " | ParseFloat and Number: " + Number(parseFloat(howmuchisthefish)) + " | Only Number: " + Number(howmuchisthefish));
    
                                    if (howmuchisthefish == 1) {
                                        document.getElementById('changed_or_not').innerHTML = " - (Counter extended by " + howmuchisthefish.toString() + " user)";
                                    } else {
                                        document.getElementById('changed_or_not').innerHTML = " - (Counter extended by " + howmuchisthefish.toString() + " users)";
                                    }
                                }
                            }
    
                            document.getElementById('countdown-minutes').innerHTML = rueckgabe;
                            i = i_aktuell;
                        }
    
    document.getElementById('ReloadIn').innerHTML = "(Reload in " + i + ")";

  • #2
    40,140 ist keine Zahl, sondern ein String. Du musst diesen String in eine Zahl konvertieren.

    Kommentar


    • #3
      Ich erhalte eine Zahl und die schaut so als bsp. aus Code: 40,140
      Das ist keine Zahl, Floats haben immer einen Punkt als Dezimaltrenner, ist zB auch in der DB so.
      Code:
      40.14
      // zu langsam
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Soll ja auch kein Float sein. Das Komma wird als Tausender Trennzeichen genutzt und mit
        Code:
        .replace(/,/gi, '')
        kann man auch nicht arbeiten.

        Kommentar


        • #5
          Alles klar... hab das
          Code:
          .innerHTML
          bei
          Code:
          aktueller_wert
          vergessen und wenn ich das so mache
          Code:
          parseFloat(rueckgabe.replace(/,/gi, ''))
          dann klappt das sehr wohl. Schlauch ist wieder frei.

          Kommentar


          • #6
            Zitat von hellbringer Beitrag anzeigen
            40,140 ist keine Zahl, sondern ein String. Du musst diesen String in eine Zahl konvertieren.
            PHP-Code:
            var_dump(40,140); 
            Ausgabe:
            int 40

            int 140

            Kommentar


            • #7
              PHP? JavaScript!

              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Ach herrje, hüstel ...

                Kommentar


                • #9
                  Zitat von hausl Beitrag anzeigen
                  PHP? JavaScript!
                  Mit console.log() kommt aber das gleiche heraus....

                  Kommentar

                  Lädt...
                  X