Danke für die ausführliche Erklärung.
Also mal kurz zu dem Format der Daten in der
DB.
Ich habe in einer
DB-Tabelle Monatswerte:Real für Umsatz und Mitarbeiter und und und.
Die werden leider mal als 12 - oder 12,9 oder 12,987 eingetragen.
Nun soll der Umsatz mit N Stellen nach dem Komma und die Mitarbeiter als "Pseudo-Integer"
ohne NKS dargestellt werden. Dafür ist der ganze Aufwand.
Ok nach langem hin und her habe ich jetzt folgende Lösung, die soweit zu funktionieren scheint
Delphi-Quellcode:
{
Format a real value with decimal places
@param value the real to format
@param decPlaces the decimal places to set
@return String the formatted value
}
function Tfrm.getFormatted(value: Real; decPlaces: Integer): String;
begin
result:=format('%.' + IntToStr(decPlaces) + 'n', [value]);
end;
{
Get a float from a string
@param value the string to convert
@return Real the value
}
function Tfrm.getFloat(value: String): Real;
var str: String;
f: TFormatSettings;
begin
if value = '' then
result:= 0
else begin
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, f);
str:= StringReplace(value, f.ThousandSeparator, '', [rfReplaceAll]);
result:= StrToFloat(str);
end;
end;
Danke nochmal an alle die an der Lösung mitgeholfen haben.
Cheers
Per