Frage

Ich wollte sehen, ob Leute dezimal für Finanzanwendungen statt doppelt verwendet haben. Ich habe viele Leute gesehen mit doppelseitigem ganzen Ort mit unbeabsichtigten Folgen. .

Haben Sie andere machen diesen Fehler zu sehen. . .

War es hilfreich?

Lösung

Wir haben leider und wir bedauern es. Wir hatten alle verdoppelt Dezimalstellen zu ändern. Dezimalzahlen sind gut für Finanzanwendungen. Sie können zu diesem Artikel suchen ein Geld-Typ für die CLR :

  

Ein bequemes, Hochleistungs-Geld   Struktur für die CLR die Griffe   arithmetische Operationen, Währungstypen,   Formatierung und sorgfältige Verteilung   und Rundung ohne Verlust.

Andere Tipps

Ja, mit float oder double für Finanz ein häufiger Fehler, zu viel, viel Schmerz führt. decimal ist die naheliegendste Wahl in diesem Szenario.

Für Allgemeinwissen, eine gute Diskussion über jeweils hier (float / double) und hier (dezimal).

Das ist nicht so offensichtlich, wie Sie vielleicht denken. Ich hatte vor kurzem die Steuerung eines großen Unternehmens sagt mir, dass er seine Finanzberichte wollte entsprechen, was Excel erzeugen würde, die berechneten Ergebnisse intern bei maximaler Präzision beibehalten und erst in letzter Minute für die Anzeige gerundet wird. Das bedeutet, dass Sie nicht immer die Excel-Antworten durch manuelle Berechnungen entsprechen können nur angezeigt Werten. Seine Erklärung war, dass es mehr Algorithmen für die Ergebnisse zu erzeugen, die jeweils an einer anderen Stelle mit Dezimalzahlen tun Runden daher potenziell widersprüchlichen Antworten zu erzeugen, aber die Excel-Methode immer die gleiche Antwort erzeugt.

Ich persönlich denke, er ist falsch, aber mit so vielen Finanz Menschen Excel verwenden, ohne zu verstehen, wie es für finanzielle Berechnungen richtig zu nutzen, ich wette, eine Menge Leute gibt es mit diesem Controller zustimmen.

Ich will nicht einen religiösen Krieg beginnen, aber ich würde gerne andere Meinungen dazu hören.

Wenn es "wissenschaftliche" Messung (I mittlere Gewicht, Länge, Fläche, etc.) verwenden verdoppeln.

Wenn es finanziell ist, oder hat etwas mit dem Gesetz zu tun (zum Beispiel den Bereich einer Eigenschaft), dann dezimal verwenden.

Der schwierige Teil ist Rundung.

Wenn die Steuer 2,4% ist tun Sie in den Details runde oder nach der Summe?

Die meiste Zeit yo haben, beides zu tun (und die DIFS fix)

Ich habe in diesen ein paar Mal laufen. Viele Sprachen haben nichts dergleichen eingebaut, und für jemanden, der nicht versteht, das Problem es nur wie ein Streit scheint, vor allem wenn es so aussieht, wie es als ohne es beabsichtigt funktioniert.

Ich habe immer Dezimal verwendet. Zumindest, wenn ich hatte eine Sprache, die es unterstützt. Andernfalls Rundungsfehler werden sie töten.

Ich bin vollkommen einverstanden auf Richtigkeit Fragen vs Gleitkommadar- oben erwähnt, aber viele Finanzanwendungen sind die Leistung entscheidend.

In solchen Fällen wird prüfen Sie float / double als Dezimalzahl hat große Auswirkungen auf die Leistung in Systemen zu verwenden, wo Dezimaltypen nicht in Hardware unterstützt. Und noch immer ist es möglich, Punkttypen in höherer Ebene Klassen zu wickeln Floating (zB Steuer, Kommission, Gleichgewicht, Dividende, Quote, Tick, etc ...), die Domain-Modell darstellen und kapselt alle Rundungslogik sowie gültige Operatoren auf dieser Art und deren Wechselwirkungen. Und ja -. In einigen Projekten habe ich benutzerdefinierte Rundungsfunktionen implementiert quetschen bis zu 20% mehr aus Berechnungen im Vergleich zu .NET oder win32 Methoden

Eine andere Sache zu prüfen ist, ob Sie Ihre Objekte aus Prozess passieren, als Dezimalzahlen, die sind in der Regel 4 ganze Zahlen und Leiten sie über den Draht ist viel CPU-Kapazität (insbesondere, wenn nicht unterstützt) und führt zu deutlich mehr Bandbreite und größere Serialisierung Speicherbedarf.

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