MYSQL Rechnung: 1.5 + 2 = 3.4999999 ?!
heuols
- datenbank
1 der Miesepeter1 Gunnar Bittersmann
Hallo alle zusammen,
ich speicher in einer Datenbank Werte varchar Format also als String.
Nun möchte ich in einer While Schleife die Werte addieren. Option eins mit SUM(beträge) oder eben durch die while schleife. Jeddoch rechner immer falsch!
Hier ein Beispiel:
1
-1
0.5
3
-1.5
-1
-0.5
= 0.049999999999997 EUR
Wie kann dieser Fehler zustande kommen? und was kann ich dagegen tun?
Hallo alle zusammen,
ich speicher in einer Datenbank Werte varchar Format also als String.
Nun möchte ich in einer While Schleife die Werte addieren. Option eins »»mit SUM(beträge) oder eben durch die while schleife. Jeddoch rechner immer
Was genau war nochmal gleich der Grund, warum du Fließkommazahlen und Integer als VARCHAR speichert wolltest?
Hallo alle zusammen,
ich speicher in einer Datenbank Werte varchar Format also als String.
Nun möchte ich in einer While Schleife die Werte addieren. Option eins »»mit SUM(beträge) oder eben durch die while schleife. Jeddoch rechner immerWas genau war nochmal gleich der Grund, warum du Fließkommazahlen und Integer als VARCHAR speichert wolltest?
Der Grund war wohl meine masslose Dumheit, ich entschuldige mich niederträchtig und voller Abscheu vor mir selbst, für diese unangemessen dämliche Frage. Doch zu meiner Verteidigung möchte ich aufführen, dass Heute der Tag der dummen Fragen ist
http://www.facebook.com/event.php?eid=162495490504963
Aus diesem Grund erhebe ich mich nun und stehe stolz zu meiner Dumheit. Für alle Anderen sei angeführt, dass man Kommabeträge in die Datenbank nieee als VARCAR schreiben sollte. Da ist es besser auf DECIMAL auszuweichen.
Was genau war nochmal gleich der Grund, warum du Fließkommazahlen und Integer als VARCHAR speichert wolltest?
Der Grund war wohl meine masslose Dumheit, ich entschuldige mich niederträchtig und voller Abscheu vor mir selbst, für diese unangemessen dämliche Frage. Doch zu meiner Verteidigung möchte ich aufführen, dass Heute der Tag der dummen Fragen ist
http://www.facebook.com/event.php?eid=162495490504963
Aus diesem Grund erhebe ich mich nun und stehe stolz zu meiner Dumheit. Für alle Anderen sei angeführt, dass man Kommabeträge in die Datenbank nieee als VARCAR schreiben sollte. Da ist es besser auf DECIMAL auszuweichen.
Aha, gut, ja, verstehe. Es heisst übrigens Dummheit. Mit zwei "m".
Das war eine Anspielung auf Dum, wenn Du das nicht verstehst solltest Du vielleicht mal darüber nachdenken Bücher zu lesen.
Hi!
Für alle Anderen sei angeführt, dass man Kommabeträge in die Datenbank nieee als VARCAR schreiben sollte. Da ist es besser auf DECIMAL auszuweichen.
DECIMAL ist für genaue Rechnungen notwendig, bei der es keine fließkommazahlenbedinge Rundungen geben darf, wie beispielsweise bei Geldbeträgen. Ansonsten kann man auch FLOAT nehmen, das lässt sich aufgrund der einem Rechner angepassten Speicherung schneller berechnen. (Wobei das bei den heutigen Geschwindigkeiten wohl nur bei sehr großen Datenmengen relevant sein wird.) FLOAT sollte aber dieselben Symptome aufzeigen wie in VARCHAR abgelegte Zahlen, weil der VARCHAR-Wert zum Berechnen auch nur in einen FLOAT konvertiert wird, wenn er ein Dezimalzeichen enthält.
Lo!
PFUI,
besudel bitte nicht dieses Forum, welches auf hochwertigem Niveau ist, mit einem Link zu dieser primitiven "gib mir all deine Daten damit wir noch reicher werden und auf MTV damit prahlen können, während du mit einem Arbeitslosengeld abgespeist wirst." - Seite
vielen Danke
Gruß
antiprimitiver
T-Rex
Om nah hoo pez nyeetz, T-Rex!
besudel bitte nicht dieses Forum, welches auf hochwertigem Niveau ist, mit einem Link zu dieser primitiven "gib mir all deine Daten damit wir noch reicher werden und auf MTV damit prahlen können, während du mit einem Arbeitslosengeld abgespeist wirst." - Seite
url != link
Matthias
Hi,
Doch zu meiner Verteidigung möchte ich aufführen, dass Heute der Tag der dummen Fragen ist
heute ist Tag des Kaffees, Du Teebeutelversteher!
Cheatah ;-)
@@heuols:
nuqneH
Wie kann dieser Fehler zustande kommen?
Das frag ich mich auch immer, wie dieser Fehler zustande kommt, dass manche den Hinweis „Lies unsere FAQ, dort sind häufig gestellte Fragen direkt beantwortet“ auf der Startseite des Forums übersehen.
Qapla'