Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#3

AW: FloatToStr nicht Thread-sicher aber erweiterte Form?

  Alt 24. Jun 2015, 11:46
Was bedeutet die Aussage der Online-Hilfe?
Das bedeutet, dass dir FloatToStr u. U. um die Ohren fliegen kann, weil irgendwer für den Preis 3,95 Euro in das Feld 3,95 eingibt (mit Komma), im System aber als Dezimaltrennzeichen ein Punkt (.) eingetragen ist und dein Programm deshalb ein 3.95 erwarten (mit Punkt).

Das FloatToStr richtet sich immer nach dem im System eingetragenem Dezimaltrennzeichen, was an für sich keine schlechte Idee ist. Das kann aber gelegentlich zu Problemen führen. Hier bist also nicht du der Herr über das Dezimaltrennzeichen in deinem Programm, sondern das System.

Wieso man das nun mit Thread-Sicherheit beschreibt fällt mir nicht ein. Gemeint ist aber damit, dass es u. U. zu Fehlermeldungen kommt wenn ein falsches Zeichen eingegeben wird. Mit der zweiten Form kann man nämlich FloatToStr mitteilen welches Dezimaltrennzeichen er beachten soll. Ein Beispiel:
Delphi-Quellcode:
var
  fs: TFormatSettings;
  s: string;
begin
  fs.DecimalSeparator := ','; //falls Komme erwünscht
  s := FloatToStr(3.95, fs);
  ShowMessage(s);
end;
  Mit Zitat antworten Zitat