Frage

Ich bin neugierig auf die Existenz von „Abrundung“ Standards“, wenn es um die Berechnung der Finanzdaten kommt. Meine ersten Gedanken sind nur auszuführen Runden, wenn die Daten an die (Präsentationsschicht) Benutzer präsentiert wird.

Wenn „abgerundet“ Daten dann für weitere Berechnungen verwendet werden, soll die „abgerundete“ Figur oder die „rohen“ -Figur verwenden? Hat jemand einen Rat?

Bitte beachten Sie, dass ich bin mir dessen bewusst unterschiedliche Rundungsmethoden, das heißt Bankers Rounding etc.

War es hilfreich?

Lösung

Die erste und wichtigste Regel: Verwenden Sie eine Dezimal-Datentyp , nie binär Gleitkommatypen.

Wann genau Rundung soll durchgeführt werden kann durch Vorschriften gefordert werden, wie die Umwandlung zwischen den Euro und nationalen Währungen es ersetzt.

Wenn es keine solche Regeln sind, würde ich alle Berechnungen mit hohen Präzision tun, und um nur für die Präsentation, das heißt nicht gerundete Werte für weitere Berechnungen verwendet werden. Dies sollte die beste Gesamt Präzision liefern.

Andere Tipps

Ich fragte nur einen Greybeard Mainframe-Programmierer an der Finanz-Software-Firma, die ich Arbeit für, und er sagte, dass es keine bekannten Standard und es ist zu Programmierer Praxis auf.

Während der Statistiker des Rundungs ??Problems bewusst gewesen sein, seit mindestens 1906, ist es schwierig, einen finanziellen Standard es Billigung zu finden.

Nach dies sit e, der „Bericht der Europäischen Kommission die Einführung des Euro und die Rundung von Währungsbeträgen schlägt vor, dass es hatte vorher keinen einheitlichen Ansatz in Banken Rundung.“

In der Regel verwendet einen symmetrischer Rundungsmodus keine Rolle, was Basis, die Sie arbeiten in (Basis-2 oder Base-10).

Dadurch wird vermieden, systematische Verzerrung bei Berechnungen.

Ein solcher Modus ist Round-Half-To-Even, sonst als "Banker Abrunden" bekannt ist.

Mit Sprach-Tools, mit denen Sie den numerischen Kontext explizit angeben, einschließlich der Rundung und Abschneiden Modi. Zum Beispiel Python decimal Modul. Die impliziten Annahmen, die von der C-Bibliothek gemacht möglicherweise nicht für Ihre Berechnungen geeignet sein.

http://en.wikipedia.org/wiki/Rounding#Rounding_to_integer

Ive nicht die Existenz gesehen „einen Standard, sie alle zu regieren“ - es gibt eine beliebige Anzahl Regeln der Rundung (wie Sie verwiesen haben), und sie scheinen Spiel zu kommen in basierend auf Industrie / Kunden- / und Währungscode ( http://en.wikipedia.org/wiki/ISO_4217 ) - da nicht jeder 2 Plätze verwendet nach dem Komma, wird das Problem noch komplizierter. Am Ende des Tages muss Ihr Kunde die Regeln spezifizieren sie ...

implementieren möchten

Es ist frustrierend, dass es nicht klare Standards auf diesem, sowohl den Programmierer zu führen, und als Verteidigung vor Gericht. Nur „normale“ tut in Richtung nächste für die Abrechnung Rundung hier Fehlbetrag von ein paar Cent auf einem Gehalt führen kann und dort, das ist etwas Arbeit Anwälte wie Crack auffressen.

Obwohl eine Basislohnsatz kann auch nur in zwei Dezimalstellen angegeben werden ( „Du bist bei $ gemietet 22,71 / Stunde“), Dinge wie gemischte Überstunden (bestimmt durch in einem Zeitraum mehr Gewinnraten von durchschnittlich) am Ende mit einem effektiven Stundensatz von $ 23.37183475 / h.

Wie wollen Sie bezahlen Überstunden auf das?

15 hours x 23.37183475 x 1.5 = $525.87 rounded from $525.86628187
15 hours x 23.37       x 1.5 = $525.82

Warum haben Sie STEAL five cents FROM MY CLIENT? Leider bin ich nicht darüber scherzen.

Dies wird noch unangenehmer, wenn Sie mit dem vollen Genauigkeit Wert berechnen, sondern eine verkürzte Version angezeigt werden. Sie tun, um die erste Berechnung oben, aber nur auf dem Lohnzettel $ 23.37 für die Geschwindigkeit anzuzeigen

Jetzt ist die Lohnabrechnung Berechnungen binden nicht auf den Cent aus, und jetzt haben Sie es zu erklären, aber auch wenn es in dem Mitarbeiter Gunst ist, kann es für einen Arbeits Anwalt Geruch Blut im Wasser und Start genug sein, Suche nach anderen Sachen.

Ein Ansatz ist es, immer rund um zugunsten des Arbeitnehmers, nicht in der natürlichen Richtung, so kann es nicht immer ein Vorwurf des systematischen Lohndiebstahl.

Betrachten skalierte ganze Zahlen verwendet wird.

Mit anderen Worten speichern ganze Zahlen von ein paar Cent statt gebrochene Zahlen von Dollar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top