Einzelnen Beitrag anzeigen

newgro

Registriert seit: 26. Mär 2007
53 Beiträge
 
Delphi 2006 Professional
 
#29

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 17. Apr 2007, 12:00
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
  Mit Zitat antworten Zitat