Tim M.: Zahlen richtig formatieren

Hallo,

ich habe einen Wert, den ich per JavaScript an eine Inputbox weitergebe:

document.neuerKurs.txtNeuRabatt.value = neuRabatt;

wenn der Wert keine Nachnomma stellen hat, dann wird die reine Zahl dargestellt (bspw. 99)
Jetzt soll der Wert aber als Currency dargestellt werden (bspw. 99,00 €). Das Euro Zeichen muss nicht sein. Kann auch eine Zahl mit 2-Nachkomma stellen sein.

neuRabatt = neuRabatt.toFixed(2)
geht auch nicht gut. Habe einen Punkt als Trennzeichen und manchmal funktioniert das gar nicht. Warum auch immer??

Kann mir da jemand helfen? Wie mache ich das in Javascript?

Gruß
Tim

  1. Hallo Tim,

    nur eine Idee:

    Du suchst den Dezimalpunkt.
    Wenn keiner da, ",00" an Zahl anhängen.
    Wenn einer da, prüfen, wo er ist und evtl. Nullen anhängen.
    Dezimalpunkt durch Komma ersetzen.

    http://de.selfhtml.org/javascript/objekte/string.htm#search (Man kann auch direkt ohne RegExp nach "." suchen.)

    Gruß, Jürgen

  2. n'abend,

    Wie mache ich das in Javascript?

    (1) nimm den eingegebenen String und ersetze alle Punkte durch nichts.
    (2) nimm den in Punkt 1 formatierten String und ersetze eingegebene Kommata durch einen Punkt. (In der Informatik ist der Punkt das Dezimaltrennzeichen)
    (3) prüfe, ob es sich bei dem String in Punkt 2 resultierenden String um eine Zahl handelt (isNaN).
    (4) konvertiere den String zu Float und wende toFixed() an.
    (5) konvertiere die in Punkt 4 generierte Zahl in einen String und ersetze den Punkt durch ein Komma.
    (6) hänge an den in Punkt 5 resultierenden String ein " €" an

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|