Nachkommastellen in einem TDBEdit werden angezeigt obwohl sie nicht in der DB stehen
-
Hallo Ihr!
Ich hab ein Problem. Ich lasse in einem DBEdit-Feld den Inhalt einer Spalte aus einer Datenbank anzeigen. Die Spalte in der MySQL-Datenbank ist vom Datentyp float(7,2). Dort werden die Werte auch richtig angezeigt... z.B. 15,51.
Im DBEdit-Feld wird aber 15,5100002288818 angezeigt. Warum und wie kann ich das ändern? Es handelt sich bei den Werten um Eurobeträge!
Liebe Grüße Nora
-
Hallo
dazu kannst du die Eigenschaft TFloatField::Precision einsetzen. Und zwar
- zur Designzeit, also mit festen Felddefinitionen :
Tabelle im Objektinspektor auswählen, Eigenschaft FieldDefs aufrufen,
betreffendes Fload-Feld im erscheinenden Fenster auswählen und Eigenschaft Precision auf 2 setzen.
- zur Laufzeit :
Du mußt von TField auf TFloatField castenTFloatField *FloatField = dynamic_cast<TFloatField *> (Table->FieldByName("<Name des Float-Feldes>")); if (FloatField != NULL) FloatField->Precision = 2;bis bald
akari
-
An solche 'Fehler' mußt Du dich im Umgang mit Fließkommavariablen gewöhnen. Es gibt Werte, die sich nicht abbilden lassen, egal welchen Datentyp du verwendest (float, double, Extended).
Beim Rechnen mit solchen Werten, können sich diese Fehler potenzieren. Du solltest, zB durch geeignete Rundungsoperationen, versuchen die Fehler zu minimieren.