Hallo Zusammen,
wenn man 1.045 * 19 nimmt, kommt 19.854999999999997 raus. Ihr müsst mir nicht erklären, warum das so ist. Das hat ja in erster Linie mit der binären Darstellung von Gleitkommazahlen zu tun. Außerdem gibt es dazu Threads wie Sand am Meer
.
Wenn ich jetzt aber diesen Wert auf 2 Nachkommastellen runde, kommt 19.85 raus.
Das ja eigentlich falsch ist. Im Dezimalsystem hätte o.g. Rechnung 19.855 ergeben, was gerundet 19.86 entspricht. Mit toFixed(2) hat man das gleiche Problem...
Jemand eine Idee, wie man hier anständig kaufmännisch Runden soll?
Grüße
nrg
wenn man 1.045 * 19 nimmt, kommt 19.854999999999997 raus. Ihr müsst mir nicht erklären, warum das so ist. Das hat ja in erster Linie mit der binären Darstellung von Gleitkommazahlen zu tun. Außerdem gibt es dazu Threads wie Sand am Meer
Wenn ich jetzt aber diesen Wert auf 2 Nachkommastellen runde, kommt 19.85 raus.
Code:
alert Math.round((1.045*19)*100)/100;
//19.85
Das ja eigentlich falsch ist. Im Dezimalsystem hätte o.g. Rechnung 19.855 ergeben, was gerundet 19.86 entspricht. Mit toFixed(2) hat man das gleiche Problem...
Jemand eine Idee, wie man hier anständig kaufmännisch Runden soll?
Grüße
nrg
Zuletzt bearbeitet: