x.xxxx ist kein gültiger Fließkommawert. Konvertieren zwischen Sprachen / Locals

8

Ich habe einen spanischen Benutzer, der ein invalid floating point error bekommt, wenn er dies tut

%Vor%

Der Grund dafür ist, dass sein Ort , für die Dezimalstelle verwendet!
Wie kann ich die Zeichenfolge oben sicher in einen Float für den Benutzer konvertieren, ohne dass es ausbombt.

    
Wizzard 01.05.2011, 21:46
quelle

4 Antworten

11

Rollen Sie Ihre eigene Version von StrToFloat

%Vor%

Und verwenden Sie dies anstelle von StrToFloat.

    
Johan 01.05.2011, 22:01
quelle
6

Verwenden Sie die zweite Überladung von StrToFloat mit einem TFormatSettings , bei dem DecimalSeparator auf . gesetzt ist.

    
Joey 01.05.2011 21:50
quelle
1

Sie können die Prozedur val verwenden, sie ignoriert lokale Systemeinstellungen.

%Vor%     
MGH 02.05.2011 07:35
quelle
0

Wenn Sie wissen , dass die Zeichenfolgen . als Dezimaltrennzeichen verwenden, sollten Sie etwas wie

tun %Vor%

Die Zeile

%Vor%

ist sehr wichtig. Der Standardwert dieser Eigenschaft ist true , und in diesem Fall kann die Variable DecimalSeparator jederzeit auf ihren Standardwert zurückgesetzt werden (z. B. , ), z. B. wenn Sie den Benutzer wechseln.

    
Andreas Rejbrand 01.05.2011 22:00
quelle

Tags und Links