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