Griever: Aus 1.4 mach 1,40 oder aus 1 mach 1,00 oder ...

Beitrag lesen

Die Verarbeitung sollte wie folgt erfolgen:

Erkenne das Eingabeformat der Zeichenkette.
Wandle diese Zeichenkette in einen Zahlwert um.
Wende auf diesen Zahlwert to_fixed() an.
Gebe das Ergebnis zurück.

Wo ist das Problem?

to_fixed() <<< Da!

Nun gut. Der Übergebene Wert ist eine Zahl. welche bis zu 7 Stellen haben kann (komma und nachkommastellen zählen somit als Stelle).

Diese wird übergeben.

Danach wird diese "string" in seine Einzelteile Zerlegt.

Ich habe aber das komplette schon fertig.

Gibt man der Funktion eine 10000 so gibt diese Funktion 10000,00 zurück. Gibt man der Funktion eine 0 dann passiert das gleiche. Bei einer Zahl, wie 1, oder 1. wird es trotzdem verarbeitet (if ist cool!).
Dazu habe ich mir extra was geschrieben, um das Runden möglich zu machen.

Hier meine fertige Funktion:

  
function Umstellen(Wert2) {  
  var temp,stelle1,leer=false;  
  if(String(Wert2).search(",")!=-1)  
  {  
    temp=String(Wert2).split(",")  
  }  
  else  
  if(String(Wert2).search(".")!=-1)  
  {  
    temp=String(Wert2).split(".")  
  }  
  if(temp[1])  
  {  
    if(String(temp[1]).length<2)  
    {  
      for(var i = 0;i<2-temp[1].length;i++)  
        temp[1]+="0";  
    }  
    else  
    if(String(temp[1]).length>2)  
    {  
      temp[1].split("");  
      temp[1][1]=(temp[1][2]<5)?temp[1][1]:temp[1][1]+1;  
      temp[1][0]=(temp[1][1]<10)?temp[1][0]:temp[1][0]+1;  
      temp[0] = (temp[1][0]<10)?temp[0]:temp[0]+1;  
    }  
  }  
  temp=temp.join(",");  
  if(Math.floor(Number(temp))==Number(temp))  
    return String(temp)+",00";  
  else  
    return String(temp);  
}  

Setze diese Funktion mal in ein Document und rufe die Funktion in einem document.write auf.

so:

document.write(Umstellen(1,2)+"<br>")
document.write(Umstellen(1.2)+"<br>")
document.write(Umstellen(12)+"<br>")
document.write(Umstellen(12.521)+"<br>")
document.write(Umstellen(1.525)+"<br>")
document.write(Umstellen(0)+"<br>")

Du erhälst:

1,20
1,20
12,00
12,52
1,53
0,00

So wollte ich das.

Also hat sich mein Problem (zumindest im Wesentlichen) gelöst.
So dürfte ich auch die Tausender-Trennzeichen dazwischen-fügen können, oder?

Wenn du noch fragen, Ideen, tips, Verbesserungsvorschläge usw. hast, nur zu.

MFG
Griever