Hallo zusammen,
wie muss ich es anstellen das ich mit Numeric Werten aus einer Datenbank rechnen kann.
Das Problem ist, das die Werte immer mit Komma statt einem Punkt ausgegeben werden,
also zum Beispiel 4,879 statt 4.879.
Im Moment mache ich das noch so:
Delphi-Quellcode:
//Wert 1
bLastScale := ZQContest.FieldByName('bLastScale').AsString;
//Wert 2
bFirstScale := ZQContest.FieldByName('bFirstScale').AsString;
//**Kommas durch Punkt ersetzen
StringReplace(bLastScale, ',', '.', [rfReplaceAll]);
StringReplace(bFirstScale, ',', '.', [rfReplaceAll]);
//Wert 1 - Wert 2
menge := (StrToFloat(bFirstScale) - StrToFloat(bLastScale));
Soweit klappt ja alles, bis auf das es ziemlich umständlich ist.
Wenn ich aber jetzt das Ergebnis wieder in die Datenbank in ein Numericfeld
zurückschreiben möchte, dann gibt es Probleme, Stacoverflow und so.
Delphi-Quellcode:
//Punkt durch komma ersetzen, sonnst Stack overflow
mengeStr := StringReplace(FloatToStr(menge), ',', '.', [rfReplaceAll]);
menge := StrToFloat(mengeStr);
ZQContest.RequestLive := True;
ZQContest.FieldByName('amount').AsFloat := menge;
ZQContest.RequestLive := False;
panAmount.Caption :=
ZQContest.FieldByName('amount').AsString;
panContestTotalAmount.Caption :=
ZQContest.FieldByName('amount').AsString;
Jetzt kommt aber eine Meldung, "4.879' is not a valid floationg point value.
Kann mir bitte jemand erklären wie ich richtig vorgehen muss??
Ich danke schon mal im Voraus