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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...