Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich bin auf einen interessanten Thread im Heise C/C++ Forum gestossen:

http://www.heise.de/foren/go.shtml?read=1&msg_id=8879998&forum_id=44546

Aus einer Newbie Frage entwickelte sich dort eine lange Diskussion über das berechnen von Zinsen, weil ja Banken nicht nur mit 2 sondern oft mit bis zu 6 oder 8 Stellen nach dem Komma rechnen. Bekanntlich ist Float aber nicht gerade genau und eine Abweichung von 0,00001 Cent kann bei Beträgen in Milliarden Höhe bereits sehr viel Geld ausmachen. (Zinses Zins)

  • Weis jemand wie Banken rechnen ?
  • Wie würdet ihr das Problem Lösen ?
  • Int benutzen und dann Umwandeln ?

gruss

tscherno

Geschrieben

Die meisten Systeme für die Rechenzentren der Bänke sind auch in anderen Sprachen geschrieben wie z.B. Cobol.

Bei Cobol ist es so das es erstmal keine "richtigen" Variablen für Zahlen gibt sondern diese als eine Art String abgebildet werden welcher nur die Zeichen von 0-9 enthält. Dadurch gibt es bei Cobol IMHO keine Rundungsfehler, auch wenn es auf Kosten der Performance geht.

Unter C/C++ würde ich z.B. anstatt float double nehmen da es genauer ist. Außerdem gibt es mehrere Bibliotheken die andere Datentypen für so etwas bereitstellen.

Geschrieben

Man nimmt überhaupt keine Flieskommadatentypen. Sondern einen Datentyp der eine definierte Anzahl von Nachkommastellen hat.

C++ besitzt von Haus aus keinen solchen Datentyp. Man könnte diesen jedoch z.B. durch eine Klasse simulieren, die zwei Membervariablen (int, short, long, .. oder so) besitzt.

Die erste Variable für die Vorkommastellen und die Zweite für die Nachkommastellen. Man kann mit einem solchen Datentyp natürlich nicht so schnell rechnen wie mit einem einfachen Datentyp aber dafür kann man mit einer definierten Genauigkeit von x-Stellen rechnen.

Geschrieben

Das ist die andere Variante.

Man sollte jedoch dabei bedenken, dass unter der Verwendung einer 32-Bitvariable, die größt mögliche Zahl bei 8 Nachkommastellen, nicht gerade astronomisch hoch ist.

:floet:

(Würde kein Geld bei dir anlegen wollen...)

Geschrieben
Man sollte jedoch dabei bedenken, dass unter der Verwendung einer 32-Bitvariable, die größt mögliche Zahl bei 8 Nachkommastellen, nicht gerade astronomisch hoch ist.
Und genau deshalb wird man im Finanzbereich auch nicht mit "normalen" (atomaren) numerischen Datentypen rechnen, sondern spezielle Bibliotheken verwenden, die eben die Genauigkeit, die gerade gefordert ist, abbilden können.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...