Konvertiert String mit Kommas in float

8

Gibt es eine eingebaute Delphi-Funktion, die einen String wie '3,232.00' in float umwandelt? StrToFloat löst eine Ausnahme wegen des Kommas aus. Oder ist der einzige Weg, das Komma zuerst zu entfernen und dann StrToFloat zu machen?

Danke.

    
M Schenkel 25.04.2009, 02:33
quelle

7 Antworten

15

Weißt du genau, dass '.' ist das Dezimaltrennzeichen und ',' ist Tausendertrennzeichen (immer)? Wenn dies der Fall ist, sollten Sie den TFormatSettings-Datensatz ausfüllen und an StrToFloat übergeben.

%Vor%     
Alex 25.04.2009, 06:56
quelle
8

unten ist was ich benutze. Es könnte effizientere Wege geben, aber das funktioniert für mich. Kurz gesagt, nein, ich kenne keine eingebaute Delphi-Funktion, die einen String-Float, der Kommas enthält, in einen Float-Wert konvertiert.

%Vor%     
Don Dickinson 25.04.2009 03:26
quelle
4

Versuchen Sie: StrToFloat(StringReplace('3,232.00', ',', '') Es sollte die Kommas vor der Umwandlung loswerden.

In C # / VB.NET verwende ich etwas wie decimal.convert("3,232.00", ",", "");

Ich kenne keine Möglichkeit, die Konvertierung durchzuführen, ohne die zusätzlichen Zeichen zu entfernen. Tatsächlich habe ich eine spezielle Funktion in meiner Bibliothek, die Kommas und Währungssymbole entfernt. Also ein Aufruf von MyConverer.decimalConverter(",232.00");

    
jrcs3 25.04.2009 02:37
quelle
4
%Vor%     
Omar Jackson 21.07.2009 20:09
quelle
1

Ich benutze eine Funktion, die das ',' und das '.' als Dezimaltrenner ...:

%Vor%     
Schoep 26.09.2012 13:12
quelle
0

Ich hatte das gleiche Problem, wenn meine Benutzer "wissenschaftliche" Werte wie "1,234.06mV" eingeben müssen. Hier gibt es ein Komma, einen Multiplikator (m = x0,001) und eine Einheit (V). Ich habe eine "breite" Formatkonvertierungsroutine erstellt, um diese Situationen zu behandeln. Brian

    
Brian Frost 25.04.2009 06:06
quelle
0

Meine Funktion:

%Vor%     
Jordi March Nogué 23.07.2017 21:06
quelle

Tags und Links