Moin,
Zitat von
hesubat:
Delphi akzeptiert nur den Punkt '.' als Dezimaltrennung. Ist auf einem Rechner das Komma (,) eingestellt, dann wehrt sich Delphi sehr dagegen. Kein Gleitkommawert!
das ist so nicht richtig. Pascal kennt nur Val() und Str() und diese beiden Prozeduren arbeiten mit den historisch anglophilen Konstanten für Dezimalpunkt und Tausender-Trennzeichen. Delphi hingegen ist sehr gut an die Möglichkeiten des jeweils aktuellen Betriebssystems angepasst.
Zitat von
hesubat:
Wie kann ich diesen Fehler abfangen?
Durch die anderen Beiträgen hier schon aufgezeigten Lokalisierungsmöglichkeiten (FormatSettings etc.) in Verbindung mit den Konvertierungsfunktionen StrToFloat() und FloatToStr() u.a. gibt es keine Probleme im interaktiven Bereich. Sorgfalt muss nur beim Wechsel zwischen externer (maschinenlesbarer) und interaktiver (lokalisierter) Darstellung walten.
Tausender-Trennzeichen werden üblicherweise nur bei der reinen Ausgabe verwendet. Werden sie auch bei der interaktiven Eingabe verwendet, so müssen sie nicht konvertiert, sondern eliminiert werden, da es keine Konvertierungsfunktion gibt, die diese nur der verbesserten Lesbarkeit dienenden Zeichen toleriert.
Grüße vom marabu