Der Martin: Brett vorm Kopf. Finde den Fehler nicht.

Beitrag lesen

Hi,

Wenn Du immer genau 2 Nachkommastellen hast, z.B. weil es Geld ist, dann rechne nicht mit Euro, sondern mit Cent. D.h. wenn Du "42.01" hereinbekommst, multipliziere es mit 100, addiere 0,5 und mache mit intval() eine Integerzahl draus.

Ich meine, mal gehört zu haben, dass das auch nicht der Weisheit letzter Schluss ist. Banken benötigen für Zinsrechnungen weit mehr als Cent-Genauigkeit, möglicherweise reichen Hundertstel-Cent.

das fängt bei den Tankstellen schon an, die zumindest intern auch mit den Zehntel-Cent rechnen.

Aber wenn man Geldbeträge mit 10000 multipliziert, um genaustens rechnen zu können, stößt man viel schneller an speichergrenzen bei großen Beträgen... Ein Dilemma.

Tja, irgendeinen Haken gibt's immer. 😉
Es gibt noch andere Möglichkeiten. Traditionelle Taschenrechner verwenden AFAIK BCD-Arithmetik, d.h. Zahlen werden intern als BCD gespeichert und verarbeitet. So kann man zumindest im Dezimalsystem, das ja die meisten von uns primär verwenden, ohne Rundungsfehler rechnen.

Daher werden meines Wissens Euro und Cent irgendwie getrennt verwaltet. Das kann aber längst veraltet oder Einbildung sein…

Ich kann mir nicht vorstellen, was das für einen Vorteil bringen könnte.

Live long and pros healthy,
 Martin

--
Home is where my beer is.
0 47

Brett vorm Kopf. Finde den Fehler nicht.

Joachim
  • php
  1. -1
    Operator
    1. 0
      dedlfix
    2. 0
      Graf Bit
      1. 0
        Der Martin
      2. 0
        Rolf B
        1. 0
          Der Martin
        2. 0

          Float binär darstellen

          Graf Bit
          • datenvisualiserung
          • php
          1. 0
            Rolf B
  2. 0
    Erik K.
  3. 0
    Der Martin
    1. 0
      Joachim
      1. 0
        Der Martin
        1. 0
          Joachim
          1. 0

            Brett vorm Kopf. Finde den Fehler nicht. Oder verstehe settype nicht. :-/

            Joachim
            1. 0
              dedlfix
              1. 0
                Joachim
                1. 0
                  Rolf B
        2. 0
          Joachim
          1. 0
            Der Martin
            1. 0
              Joachim
      2. 0
        encoder
        1. 0
          Rolf B
          1. 0
            encoder
  4. 0
    Rolf B
    1. 0
      Der Martin
      • php
      • selfhtml-wiki
      1. 0
        Rolf B
        1. 0
          Der Martin
          1. 0
            Matthias Apsel
        2. 0
          Matthias Apsel
      2. 0
        Matthias Apsel
        1. 0
          Rolf B
    2. 0
      Joachim
      1. 0
        Joachim
      2. 2
        Der Martin
        1. 0
          Joachim
      3. 2
        Rolf B
        1. 0
          Der Martin
          1. 0
            Matthias Apsel
            • sonstiges
            1. 0
              Rolf B
              1. 0
                Der Martin
        2. 0
          Joachim
          1. 0
            Der Martin
        3. 0
          Tabellenkalk
          1. 0
            Der Martin
            1. 0
              MudGuard
          2. 0
            Rolf B