Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: StrToFloat -> Wahnsinn kurz bevorstehend!

  Alt 5. Okt 2010, 09: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.
$2B or not $2B
  Mit Zitat antworten Zitat