[JavaScript] Problem beim Berechnen mit Dezimalstellen

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

  • [JavaScript] Problem beim Berechnen mit Dezimalstellen

    Ich hab mir in JavaScript ne kleine Funktion geschrieben, die mir nach Eingabe in ein Textfeld des Gesamtbetrag berechnet. Sinn des Ganzen: Wenn im Textfeld eine Zahl bis 500,00 € steht, soll die Bearbeitungsgebühr 30,00 € betragen, steht dort ein Betrag über 500,00 € soll die Bearbeitungsgebühr 50,00 € betragen. das Ganze funktioniert soweit auch ganz gut, allerdings werden die Zahlen zwischen 1000,00 und 4999,99 € wohl als Zahl unter 500,00 € gewertet, jedenfalls erhalten sie fälschlicherweise 30,00 € Bearbeitungsgebühr.

    Kann mir jemand sagen, was an folgendem Code falsch ist?
    Code:
       function berechnen()
         {
           with(window.document.ratenvereinbarung) {
             // Rechnungsbetrag einlesen
             rechnungsbetrag = re_betrag.value;
             var gebuehr499 = 30.00;
             var gebuehr501 = 50.00;
            // Bearbeitungsgebühr berechnen
            if(rechnungsbetrag >= "500"){
              // bearbeitungsgebuehr = gebuehr501;
              bearbeitungsgebuehr = "50,00";
              gesamtbetrag = eval(rechnungsbetrag + "+" + gebuehr501);
            }
            else if(rechnungsbetrag < "500"){
              // bearbeitungsgebuehr = gebuehr499;
              bearbeitungsgebuehr = "30,00";
              gesamtbetrag = eval(rechnungsbetrag + "+" + gebuehr499);
            }
    
            // Bearbeitungsgebühr ausgeben
            bearb_gebuehr.value = bearbeitungsgebuehr;
    
            // Rechnungsbetrag inkl. Bearbeitungsgebühr ausgeben
            gesamt_betrag.value = gesamtbetrag;
            }
           return true;
         }
    Das Genie überblickt das Chaos!

    Wer Rechtschreibfehler findet, darf sie behalten!

  • #2
    Re: [JavaScript] Problem beim Berechnen mit Dezimalstellen

    Zum einen ist das Dezimalzeichen in Javascript der Punkt, und nicht das Komma - das müsstest du also erst mal umwandeln, wenn deine Eingaben im deutschen Format erfolgen.

    Und zum anderen verstehe ich nicht, warum du Stringvergleiche machst, wenn du doch eigentlich Zahlbereiche abgleichen willst.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Gut, das Komma wandle ich vorher schon um in einen Punkt, das hab ich nur vergessen zu erwähnen.

      Aber wie meinst du das mit dem Zahlenbereich?
      Das Genie überblickt das Chaos!

      Wer Rechtschreibfehler findet, darf sie behalten!

      Kommentar


      • #4
        Original geschrieben von chefdesigner
        Aber wie meinst du das mit dem Zahlenbereich?
        So, wie ich es schrieb.
        if(rechnungsbetrag < "500"){
        Warum machst du hier einen Stringvergleich?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Weil ich mich mit JavaScript nicht sonderlich gut auskenne und nicht weiss wie ich das sonst lösen soll.
          Das Genie überblickt das Chaos!

          Wer Rechtschreibfehler findet, darf sie behalten!

          Kommentar


          • #6
            Dann solltest du mal selfhtml konsultieren bzgl. Javascript-Grundlagen - und erst mal herausfinden, was der Unterschied zwischen einer Zahl und einem String ist.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ach jetzt verstehe ich auf was du hinaus willst, es geht um die Anführungszeichen, die das Ganze zum Stringvergleich machen, richtig?
              Hab die Anführungszeichen jetzt rausgenommen, jetzt funktionierts.

              Danke
              Das Genie überblickt das Chaos!

              Wer Rechtschreibfehler findet, darf sie behalten!

              Kommentar

              Lädt...
              X