dedlfix: Geldbeträge in mysql-Datenbank abspeichern

Beitrag lesen

echo $begrüßung;

» Es ist eine gute Idee, stets den am besten passenden Datentyp zu wählen, den das DBMS für eine Aufgabe zu bieten hat. Für Geldbeträge ist dies im Fall von MySQL DECIMAL. Jeder andere Datentyp ist schlechter geeignet.
Ich vermisse immer noch eine genaue Begründung warum das so sein soll. Eine Kasse muss auf dem Cent genau stimmen, da wird nicht in "Euro Komma irgendwas" gerechnet, sondern in Cent.

Es gibt Leistungen, die werden in Bruchteilen von Cents abgerechnet. Wenn du dein System auf Cent-Berechnung eingestellt hast, bekommst du nun ein Problem. Du könntest jetzt mit Aufwand dein System auf Zehntel-Cent-Rechnung umstellen und bekommst das nächste, wenn der Chef sagt: "0,15 Cent soll es nun kosten". Dabei geht dir jedes Mal "am linken Rand" die höchstwertige Stelle verloren, was sich vielleicht nicht bei den kleinen Preisen aber bei der Summierung größerer Posten davon bemerkbar macht. Bei DECIMAL gehst du nur mit der Präzision von (10,2) auf (11,3) oder (12,4).

Siehst Du, lieber Vinzent, damit ist es ganz ähnlich: Wenn MySQL KEINE Funktionen bietet, wo mir ein spezieller Feldtyp Vorteile bietet, entscheide ich mich für einen Feldtyp der möglichst nahe an der Praxis ist.

In Cent zu rechnen soll praxisnäher sein als in Euro und Cent? Es hat sich ja nicht umsonst jemand den Typ DECIMAL ausgedacht. Die Probleme, die du momentan nicht erkennst, sind damit schon gelöst.

echo "$verabschiedung $name";