Konvertieren von Zeichenfolgen mit Kommas zu schweben
Gibt es eine built-in-Delphi-Funktion, die das konvertieren zu einem string wie '3,232.00' zu schweben? StrToFloat wirft eine exception, weil das Komma. Oder ist der einzige Weg, um Streifen aus dem Komma und dann machen StrToFloat?
Dank.
- Gibt es eine Verpflichtung für diese zu arbeiten in Sprachen, wo das Komma ist als Dezimalpunkt? Überall in Europa, zum Beispiel?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun Sie genau wissen, dass '.' ist Dezimaltrennzeichen, und ',' ist Trennzeichen für Tausender (immer)?
Wenn dem so ist, dann sollten Sie füllen die TFormatSettings record und übergeben es an StrToFloat.
FillChar(FS, SizeOf(FS), 0);
wirklich notwendig? Es scheint zu funktionieren auch ohne (Delphi XE2).unten ist, was ich verwenden. gibt es vielleicht noch effizientere Möglichkeiten, aber diese funktioniert für mich. in kurzen, Nein, ich weiß nicht, built-in delphi die Funktion konvertiert einen string-float mit Komma float
Versuchen:
StrToFloat(StringReplace('3,232.00', ',', '')
Es sollte loszuwerden, die Kommas, bevor Sie die Konvertierung.
In C# /VB.NET ich verwenden würde, so etwas wie
decimal.convert("3,232.00", ",", "");
Ich kenne keinen Weg, um die Konvertierung ohne entfernen der zusätzlichen Zeichen. In der Tat, ich habe eine Besondere Funktion in meiner Bibliothek, die Streifen aus Kommas und Währungssymbole. So rufen
MyConverer.decimalConverter("$3,232.00");
Ich eine Funktion verwenden, die in der Lage ist, behandeln die ',' und '.' als decimalseparator...:
Ich hatte das gleiche problem, wenn meine Benutzer eingeben müssen, "wissenschaftlichen" Werte wie "1,234.06 mV". Hier ist ein Komma, ein Multiplikator (m=x0.001) und eine Einheit (V). Ich erstellte ein 'wide' - format-Konverter-routine für den Umgang mit solchen situtations.
Brian
Myfunction:
Mithilfe der Foreach-Schleife
mit lemda Ausdrucks zum konvertieren von string durch Komma seprated auf ein float-array