Einzelnen Beitrag anzeigen

TankWart

Registriert seit: 25. Feb 2005
46 Beiträge
 
#1

Gleitkomma Wert, Nachkomma wird nicht dargestellt

  Alt 9. Mär 2007, 11:08
Datenbank: firebird • Version: 1.5 • Zugriff über: ZEOS
Hallo zusammen,
wie muss ich Double Werte speichern, damit sie mir wieder richtig angezeigt werden?

Momentan gehe ich noch so vor:
Speichern:
Delphi-Quellcode:
menge :=
(StrToFloat(panFirstScale.Caption) - StrToFloat(medtLastBalance.Text));

MengeStr := FloatToStr(Menge);
MengeStr := Format('%.3f', [Menge]);

MengeStr :=
StringReplace(MengeStr, ',', '.', [rfReplaceAll]);

ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Text := 'UPDATE gesammt SET points = ' + MengeStr +
' WHERE gid = ' + ZQWettkampf.FieldByName('gid').AsString;
ZQuery1.ExecSQL;
Also, zuerst die Berechnung.
Dann Format, es sollen immer 3 Nachkommastellen sein.
Dann Komma durch Punkt ersetzen, sonnst kommt beim ausführen von ExecSQL eine Fehlermeldung.
Wert in DB speichern
Wert in DB ist dann z.B. 6,456.

Ist das mit dem Komma richtig?
Ich denke schon da er einen Punkt doch als tausender Trennzeigen erkennt.

Lesen:
Delphi-Quellcode:
erg2 := ZQWettkampf.FieldByName('points').AsString;
erg := ZQWettkampf.FieldByName('points').AsFloat;
Wenn ich jetzt den Wert aus der DB lese, egal ob als String, oder Float, schneidet er mir immer die Nachkommastelle ab,
obwohl der Wert richtig in der DB steht.

Verstehe das echt nicht, warum er mir nicht mal den Wert als String richtig ausgibt, bin schon am Verzweifeln.


Ich danke schon mal im Voraus

Gruß

TankWart
  Mit Zitat antworten Zitat