Manuel: Welche Spaltentyp für Geldberechnungen?

Hallo

Welchen Spaltentyp muss ich in MySQL verwenden um mit Kommazahlen rechnen zu können?

Ich möchte mit PHP Geldbeträge eintragen die dann verrechnet und in der Datenbank gespeichert werden.
Ich hatte meine Betragsspalte bisher als INT

Wenn ich jedoch 23.50 in der Datenbank speichern möchte steht nur 23 drin oder so.

Es wäre vom Vorteil wenn die Beträge auch mit den übrigen Nullen gespeichert werden. Sprich wenn 25 - 15.50 berechnet wird soll auch 9.50 in die Datenbank geschrieben werden und net 9.5

wichtig ist halt dass ich das dann später wieder auslesen und weiter berechnen kann.

MFG
Manuel

  1. Halihallo Manuel

    Welchen Spaltentyp muss ich in MySQL verwenden um mit Kommazahlen rechnen zu können?

    Du weisst, dass es zu MySQL eine Dokumentation gibt, ja?

    http://www.mysql.com/doc/en/Column_types.html

    DOUBLE, FLOAT, REAL, ... alles "Kommezahlen"-Datentypen...

    Viele Grüsse

    Philipp

    1. Hello,

      Du weisst, dass es zu MySQL eine Dokumentation gibt, ja?

      http://www.mysql.com/doc/en/Column_types.html

      DOUBLE, FLOAT, REAL, ... alles "Kommezahlen"-Datentypen...

      Buchhalterische Werte speichert man nicht in Zahlentypen mit variabler Nachkommastelle, sondern immer in Datentypen mit fester Nachkommaanzahl. Dazu gibt es auch Vorschriften vom Bundesamt für Finanzen
      http://www.bff-online.de/

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Hi,

        Buchhalterische Werte speichert man nicht in Zahlentypen mit variabler Nachkommastelle, sondern immer in Datentypen mit fester Nachkommaanzahl.

        wobei die feste "Nachkommaanzahl" (huebsches Wort uebrigens) auch '0' sein darf.

        Dazu gibt es auch Vorschriften vom Bundesamt für Finanzen
        http://www.bff-online.de/

        Taete mich interessieren. Leider kann ich nicht nachvollziehen, auf was Du Dich beziehst. Worauf beziehst Du Dich?

        Gruss,
        Lude

      2. Hi!

        DOUBLE, FLOAT, REAL, ... alles "Kommezahlen"-Datentypen...

        Buchhalterische Werte speichert man nicht in Zahlentypen mit variabler Nachkommastelle, sondern immer in Datentypen mit fester Nachkommaanzahl. Dazu gibt es auch Vorschriften vom Bundesamt für Finanzen
        http://www.bff-online.de/

        Ach, da gibt es tatsächlich feste Regeln für die Speicherung? Auch für die Berechnungen selbst? Irgendwie bin ich vermutlich ein bisschen blind, aber ich finde da so überhaupt keine Aussage zum Thema (dafür finde ich ein Foto von tux
        <img src="http://www.bff-online.de/linux/pinguin.gif" border="0" alt="">
         ;-)). Weißt Du zufällig noch wo das stand?

        Grüße
        Andreas

  2. Hallo Manuel,

    in der Dokumentation steht hierzu:

    Akkurate Darstellung monetärer Werte ist ein häufiges Problem. In
    MySQL sollten Sie den DECIMAL-Typ benutzen. Dieser wird als
    Zeichenkette gepeichert, weshalb kein Genauigkeitsverlust auftreten
    sollte. Wenn Genauigkeit nicht allzu wichtig ist, sollte auch der
    DOUBLE-Typ ausreichen.

    Um hohe Präzision zu erzielen, können Sie immer auch in einen
    Festkommawert umwandeln, der in einer BIGINT gespeichert wird. Das
    erlaubt Ihnen, alle Berechnungen mit Ganzzahlen durchzuführen und
    die Ergebnisse nur wenn notwendig in Fließkommawerte
    zurückzuwandeln.

    http://www.mysql.de/doc/de/Numeric_types.html

    Hoffe ich konnte Dir helfen

    Horst