Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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.

Man nimmt überhaupt keine Flieskommadatentypen.

Yep, man nimmt einen Datentyp vom Typ Ganzzahlen...

und rechnet dann mit 1000/cent oÄ

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

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.

Richtig perdi und wir haben uns ein bißchen darüber unterhalten wie man eine solche Bibliothek ansatzweise realisieren könnte.

:D

Gute Einstellung... :uli

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.