Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#17

AW: StrToFloat -> Wahnsinn kurz bevorstehend!

  Alt 5. Okt 2010, 08:02
Erstmal mußt du bedenken, daß StrToFloat und Co. sprachabhängige Systemeinstellungen für "," "." usw. verwenden.

englisch
- Dezimalpunkt
- Komma als Tausendertrennzeichen

deutsch
- Dezimalkomma
- Tausenderpunkt

Dann gibt es in einigen Windows 7-Intallationen einen "Fehler", welcher dein Programm andere Werte auslesen läßt, als in der Systemsteuerung angezeigt werden.
- speziell betrifft das einige deutsche (vorinstallierte) Windows 7, wo die deutschen Einstellungen nicht überall eingetragen sind
- Delphi list dabei dann leider die englischen Einstellungen aus. obwohl der Benutzer auf deutsch eingestellt ist.
(Problem: dort sind natürlich , und . vertauscht)

Dazu gibt es schon mehrere Threads
> Lösung: Die Sprachoptionen in Windows auf Englisch stellen und dann zurück auf Deutsch,



Lösungen für dich und dein Problem, denn so oder so bleibt das Zahlenformat sprachabhängig:
- entweder die Zahlen in einem sprachabhängigen Format besorgen
- oder StrToFloat sprachunabhängig machen (PS: es gibt ein Delphi-Referenz durchsuchenStrToFloat, welches ein FormatSettings benutzt)
[edit]
Zitat:
Ah, Optimierung gefunden...



Zitat:
Gleiches Resultat:
Was passiert, wenn du nicht vergißt auch noch den Tausenderpunkt zu setzen?

PS: GetLocaleFormatSettings mußt du nicht unbedingt nutzen, es reicht auch, wenn du da einfach die (nötigen) Werte direkt setzt, also die Werte, welche von der entsprechenden Funktion genutzt werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat