Heim >Web-Frontend >js-Tutorial >Warum führt toFixed(2) bei bestimmten Dezimalwerten eine falsche Rundung durch?
Javascript toFixed-Rundungsdiskrepanzen
toFixed(2) rundet für bestimmte Dezimalwerte nicht auf und zeigt im bereitgestellten Beispiel 859,38 statt 859,39 an . Diese Diskrepanz kann auf Variationen in den Browser-Implementierungen der toFixed()-Methode zurückgeführt werden.
Um dieses Problem zu umgehen und eine konsistente Rundung über alle Browser hinweg sicherzustellen, sollten Sie die Verwendung der von blg empfohlenen toFixed10()-Methode in Betracht ziehen. Diese Methode ermöglicht eine genaue Rundung auch für Werte mit erweiterter Genauigkeit.
Hier ist ein aktualisierter Codeausschnitt, der toFixed10() enthält:
function toFixed(num, precision) { return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision); } ... $('#lblTotalSprice').text('$' + addCommas(toFixed(currSprice, 2))); $('#lblTotalPrice').text('$' + addCommas(toFixed(currPrice, 2))); $('#lblTotalDiscount').text('$' + addCommas(toFixed(currDiscount, 2))); $('#lblTotalDeposit').text('$' + addCommas(toFixed(currDeposit, 2)));
Das obige ist der detaillierte Inhalt vonWarum führt toFixed(2) bei bestimmten Dezimalwerten eine falsche Rundung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!