Robert21: Zahl in Preis konvertieren

Hi!

Ich hab einen JS Code der eine Zahl als Preis ausgibt, die funktioniert zu 95%, nur bei einem Fall wie z.B. 19.90 funktionierts nicht, was muss ich denn da noch ändern?
(ich kenn mich mit js leider gaaar ncith aus, bin eigentlich php programmierer)

  
  // Preis kaufmännisch auf 2 Stellen mit Komma runden  
  price = (Math.round(price * 100) / 100).toString();  
  price += (price.indexOf('.') == -1)? '.00' : '';  
  price = price.substring(0, price.indexOf('.')) + ',' + price.substring(price.indexOf('.')+1, price.indexOf('.')+3);

Vielen Dank!
Robert

  1. Hi,

    Ich hab einen JS Code der eine Zahl als Preis ausgibt, die funktioniert zu 95%, nur bei einem Fall wie z.B. 19.90 funktionierts nicht, was muss ich denn da noch ändern?

    Die Problembeschreibung, denn sie glänzt derzeit durch vollkommene Abwesenheit.

    (Obwohl ich natürlich *vermuten* könnte, dass dir eine Null "fehlt", und du diese deshalb anfügen möchtest.)

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
  2. Hallo,

    Ich hab einen JS Code der eine Zahl als Preis ausgibt, die funktioniert zu 95%, nur bei einem Fall wie z.B. 19.90 funktionierts nicht, was muss ich denn da noch ändern?

    zunächst mal erklären, *was* nicht funktioniert. Bekommst du falsche Werte (Rundungsfehler)? Mehr Ansatzpunkte gibt meine Glaskugel gerade nicht her, obwohl ich sie heute poliert habe.

    So long,
     Martin

    --
    Die beste Informationsquelle sind Leute, die jemand anderem versprochen haben, nichts weiterzuerzählen.
      (alte Journalistenweisheit)
    1. *schäm*

      hoppla, die fehlerbeschreibung hab ich mir wohl nur gedacht, aber ncith geschrieben :-/

      Es gibt bei 19.00 den String "19,9" anstatt "19,90" zurück.

      lg
      Robert

      1. @@Robert21:

        Es gibt bei 19.00 den String "19,9" anstatt "19,90" zurück.

        Und was verblüfft dich daran?

        »» »» price += (price.indexOf('.') == -1)? '.00' : '';

        Du hängst beim Wert 19 '.00' an. Beim Wert 19.9 hängst du nichts an. Wo sollte die Null am Ende denn herkommen?

        Damit du dich da nicht weiter in den unnötigen Stringoperationen verrennst, wollte ich dich noch auf eine geeignetere Funktion hinweisen, aber Encoder war schneller.

        Live long and prosper,
        Gunnar

        --
        Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
    2. @@Der Martin:

      Mehr Ansatzpunkte gibt meine Glaskugel gerade nicht her, obwohl ich sie heute poliert habe.

      Haste denn auch das gute Ajax dafür genommen?

      Live long and prosper,
      Gunnar

      PS: Oops, den hatten wir schon.

      --
      Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
      1. Hallo Gunnar,

        »» Mehr Ansatzpunkte gibt meine Glaskugel gerade nicht her, obwohl ich sie heute poliert habe.
        Haste denn auch das gute Ajax dafür genommen?

        an meine Glaskugel lasse ich nur Wasser und CD.

        PS: Oops, den hatten wir schon.

        Ja, ich entsinne mich. Trotzdem nett. :-)

        So long,
         Martin

        --
        Programmierer (m), seltener auch ~in (w):
        Irdische, i.a. humanoide Lebensform, die in einem komplizierten biochemischen Prozess Kaffee, Cola und Pizza in maschinenlesbaren Programmcode umwandelt.
        P~ bilden gelegentlich mit ihresgleichen kleine Gruppen, sogenannte Communities, sind aber ansonsten meist scheue Einzelgänger.
        P~ sind vorwiegend nachtaktiv und ohne technische Hilfsmittel nur eingeschränkt lebensfähig.
  3. Ein Preis ist auch eine Zahl. Ich sehe zwar nicht genau was überhaupt dein problem ist, aber ich denke du suchst eine Formatierungsfunktion zur Konvertierung einer Zahl in einen String, der man die Anzahl an Nachkommastellen angeben kann?
    Guck mal http://de.selfhtml.org/javascript/objekte/number.htm@title=hier

    1. thx, passt!

      lg
      Robert