Problem beim rechnen mit MySQL. HILFE! :(

splat

Erfahrenes Mitglied
Hallo,

ich habe seit gestern ein Problem mit meiner MySQL Tabelle und komme einfach nicht drauf wo der Fehler liegen soll... :(
Ich habe eine Tabelle "products" mit den Spalten "preis" und "lagerbestand".
Jetzt möchte ich einfach nur den Gesamtwert meines Lagerbestandes haben.

das ganze hat mit dieser Abfrage lange problemlos funktioniert:
Code:
SELECT sum(preis * lagerbestand) AS gesamtwert FROM products
Gestern habe ich so um die 1000 neue Artikel eingegeben, und auf einmal bekomme ich als Gesamtwert einen Wert mit vielen Stellen hinter dem Komma: 3234.550000001
Nur wieso erst auf einmal?

Als Datentyp habe ich varchar(10) für den Lagerbestand und decimal(6,2) für den Preis gewählt. Zuvor hatte ich es mit float probiert, doch da bekam ich noch merkwürdigere Ergebnisse beim rechnen. Als Trennung von EUR zu cent habe ich überall einen Punkt, kein Komma. Das habe ich schon kontrolliert.
Ich könnte die Stellen ja runden lassen.. doch würde ich schon gerne einen Wert sehen von dem ich weiss das er 100% stimmt. Bei diesem Wert ist mir immer ein bischen unwohl.

Woran könnte das noch liegen? Hat hier vielleicht jemand noch eine Idee?

Gruß, Marc
 
was ist denn dabei der Unterschied?
Das hört sich ja nach einer sehr überzeugenden Antwort an :)
Ich werde es später mal ausprobiern! Danke!

- Marc
 
Integer ist eine ganze Zahl, d.h. sie hatt keine Kommastellen und bietet sich für den Lagerbestand an, da es sicherlich keine "Teile" von Produkten im Lager liegen.
Anbieten würde sich zusätzlich noch gleich ein unsigned (vorzeichenlos) Integer zu verwenden, das erhöht erstens den Bereich der Zahlen und zweitens vermeidet es ein Eingabe von negativen Stückzahlen.

varchar ist ein Text und absolut ungeeignet damit zu rechnen.
 
Jetzt klappt alles wieder wunderbar! Das "unsigned" lasse ich erstmal weg, da ich auch mit negativen Zahlen arbeite (wenns soweit ist wird die Abfrage noch abgeändert) :)

Vielen Dank für die schnelle Hilfe ;-)
 
kurze Frage noch:

Was eignet sich denn jetzt für ein Datentyp für die Preisangabe zum Rechnen besser? float(5,2), oder decimal(5,2)? Habe auch noch eine Spalte "Gewicht" (z.Z. auch als "float(5,3)")

- Marc
 

Neue Beiträge

Zurück