JavaScript/Objekte/Number/toFixed
Die Methode toFixed() erzeugt aus einer Zahl eine Zeichenkette, die den Wert dieser Zahl in Festkommaschreibweise darstellt. Optional kann ein Parameter übergeben werden, wieviele Nachkommastellen darzustellen ist. Ohne diesen Parameter wird auf eine ganze Zahl gerundet.
Gerundet wird nach kaufmännischen Regeln. Das bedeutet, dass die Rundung von 1.372 auf zwei Nachkommastellen den Wert 1.37 ergibt, 1.376 ergibt 1.38. Die Rundung von 1.375 ist problematisch. Nach kaufmännischen Regeln muss sich 1.38 ergeben, aber darauf ist kein Verlass, weil JavaScript mit einer binären Annäherung an das Dezimalsystem rechnet. Bei 1.375 funktioniert es, (1.365).toFixed(2) ergibt hingegen 1.36, weil JavaScript die 1.365 intern als 1.364999999999999893 speichert. Eine Diskussion der Thematik findet sich im Artikel Rechnerarithmetik. Wenn Sie kaufmännisch exakt rechnen müssen, multiplizieren Sie besser alle Geldbeträge mit 100 oder 10000 und rechnen ganzzahlig mit Cent oder Hunderstel-Cent, die Sie lediglich für die Ausgabe wieder herunterdividieren.
Syntax
zahl.toFixed(digits);
digits
: Anzahl der Nachkommastellen (0-20), Standardwert 0
Anwendungsbeispiel
function Berechnen (zahl) {
zahl = parseFloat(document.getElementById('eingabe').value.replace(',', '.'));
zahl = zahl.toFixed(2);
var elem = document.getElementById('ausgabe');
elem.innerHTML = zahl;
}
Das Beispiel definiert ein Formular mit einem Eingabefeld und einem Button. Nach Eingabe einer Zahl und Klick auf den Button wird das Ergebnis ausgegeben. Das Ergebnis ist die Anwendung von toFixed()
auf den Wert im Eingabefeld. Bei Eingabe von Bruchzahlen im ersten Eingabefeld steht im zweiten Feld anschließend die kaufmännisch auf 2 Stellen gerundete Zahl.
7123.209848
lauten, dann würde 7123.21
ermittelt.