Hallo Lutz!
Wie wäre es mit einem kleinen Wettstreit: Wer den kürzesten (Anzahl der Zeichen), fehlerfreien Code hinbekommt?
:-) das Runden hat mich schon vor langer Zeit ziemlich beschäftigt.
Die damalige Lösung (ab IE3 und NN3) findest du hier:
Die moderne Lösung (ab NN 6, IE 5.5 und nicht in Opera) lautet:
function runden(zahl,stellen)
{
return Number(zahl.toString().replace(",",".")).toFixed(stellen)
}
Beispielaufrufe:
runden('0.008',2)
runden(0,2)
runden('21345,45',-3)
runden(21.34545,2)
Viele Grüße
Antje
Hallo Antje,
da hast Du Dir echt viel Mühe gegeben, deshalb habe ich mir auch besonders viel Mühe gegeben ein Beispiel zu finden, wo Deine Rundungsfunktion nicht funktioniert. Probier mal
runden('10000.000008',-6)
Den Bug wirst Du sicherlich selbst schnell herausmachen können,
kleiner Tip, hier muß etwas geändert werden:
if (zahl.length-zahl.indexOf(".")>Math.abs(wert)+1)
zahl=zahl.substring(0,zahl.indexOf(".")+Math.abs(wert)+1);
MfG. Lutz T.
PS: Auch wenn der Fehler raus ist, hast Du im Wettstreit um den kürzesten Code, wie Du sicherlich einsehen wirst, mit Deiner Funktion keine Chance ;-)