mikdoe
Moderator
Dieser Thread ist ein Extrakt aus Thread http://forum.jswelt.de/javascript/57908-richtig-runden.html
Ich mache solche Rechnung bewußt niemals in JS, weil ich auf den Browser und seine Rechnerei keinen Einfluss habe. Daher ist mein Mathematik-JS extrem beschränkt.
Aber wenn ich müsste würde ich wohl mit soetwas wie z.B. Math.floor() die Ganzzahl eines Wertes ziehen und danach den Dezimalpunkt in der Zahl suchen mit soetwas wie indexOf() und abhängig von der dritten Stelle nach dem Dezimalpunkt (bei >4 soweit überhaupt vorhanden) zu meiner Ganzzahl eine addieren.
Und ab diesem Punkt würde ich intern nur noch mit dieser Ganzzahl weiter rechnen und erst bei der Ausgabe (so spät wie möglich) wieder durch 100 dividieren zwecks Anzeige.
Dein Beispiel 24,37 ist übrigens ungeeignet da es nicht gerundet werden muss. 24,375 als Ergebnis einer Rechnung wäre das bessere Beispiel. Da müsste dann 2438 als Ganzzahl rauskommen.
Aber eine Warnung noch: Das garantiert auch nicht in allen Fällen den Erfolg! Auch bei der Umwandung in eine Ganzzahl können Fehler passieren. Selbst die Ur-Serversprachen wie z.B. Perl kommt bei solchen Aktionen (wg. fehlendem internen Typecast) manchmal an ihre Grenzen.
Wenn es hier also um was geht, mach das weder mit JS noch mit Perl sondern in Sprachen die rechnen können, wie z.B. die C-Dialekte (hab ich mir sagen lassen).
Ich mache solche Rechnung bewußt niemals in JS, weil ich auf den Browser und seine Rechnerei keinen Einfluss habe. Daher ist mein Mathematik-JS extrem beschränkt.
Aber wenn ich müsste würde ich wohl mit soetwas wie z.B. Math.floor() die Ganzzahl eines Wertes ziehen und danach den Dezimalpunkt in der Zahl suchen mit soetwas wie indexOf() und abhängig von der dritten Stelle nach dem Dezimalpunkt (bei >4 soweit überhaupt vorhanden) zu meiner Ganzzahl eine addieren.
Und ab diesem Punkt würde ich intern nur noch mit dieser Ganzzahl weiter rechnen und erst bei der Ausgabe (so spät wie möglich) wieder durch 100 dividieren zwecks Anzeige.
Dein Beispiel 24,37 ist übrigens ungeeignet da es nicht gerundet werden muss. 24,375 als Ergebnis einer Rechnung wäre das bessere Beispiel. Da müsste dann 2438 als Ganzzahl rauskommen.
Aber eine Warnung noch: Das garantiert auch nicht in allen Fällen den Erfolg! Auch bei der Umwandung in eine Ganzzahl können Fehler passieren. Selbst die Ur-Serversprachen wie z.B. Perl kommt bei solchen Aktionen (wg. fehlendem internen Typecast) manchmal an ihre Grenzen.
Wenn es hier also um was geht, mach das weder mit JS noch mit Perl sondern in Sprachen die rechnen können, wie z.B. die C-Dialekte (hab ich mir sagen lassen).
Zuletzt bearbeitet: