Was ist in MySQL der bevorzugte Spaltentyp zum Speichern des Preises eines Produkts (oder der Währungen im Allgemeinen)? Google hat mir beigebracht, dass DECIMAL of FLOAT oft verwendet wird, aber ich frage mich, welches besser ist.
Ich speichere Preise zwischen 0,01 und 25,00. Natürlich könnten auch höhere Werte möglich sein. (Hinweis: Ich frage nicht nach Copy-Pasta-Code, sondern gebe Ihnen nur weitere Informationen, die Ihnen helfen könnten, eine vollständigere Antwort zu finden.)
Vielen Dank
Der Feldtyp "Dezimal" ist gut.
Wenn Sie hohe Preise haben, können Sie verwenden,
product_price decimal(6,2) NOT NULL,
dh Sie können Preise bis zu 6 Stellen mit Dezimalpunkt vor 2 Stellen speichern.Der maximale Wert für das Feld
product_price decimal(6,2) NOT NULL,
speichert den Preis bis zu 9999,99Wenn alle Preise zwischen 0,01 und 25,00
product_price decimal(4,2) NOT NULL,
liegen, ist dies gut. Wenn Sie jedoch höhere Preise haben, können Sie beliebige Werte in festlegendecimal(4,2)
.quelle
Ich würde float nicht verwenden, da dies zu Rundungsfehlern führen kann, da es sich um einen Gleitkommatyp handelt.
Verwenden Sie eine Dezimalstelle:
Siehe: http://dev.mysql.com/doc/mysql/en/numeric-types.html
quelle
Ich bevorzuge INT (Preis multipliziert mit 100), das das Gleitkommaproblem in anderer Software löst.
quelle
Dezimal ist falsch, denn wenn Sie den Preis auf 12,99 Dezimal einstellen möchten, drehen Sie ihn auf 13,00. Dies ist also falsch, aber wenn Sie float verwenden, können Sie ihn als 12,99 speichern. Die richtige Antwort lautet also float und varchar.
quelle