Entwickler-Ecke

Basistechnologien - String to double


stugi82 - Sa 19.07.08 11:35
Titel: String to double
Hallo,

ich lese aus einer Textdatei verschiedenen Werte aus. Jetzt möchte ich einige dieser Wert vom Typ string in den Typ double umwandeln.

also ungefähr so:


C#-Quelltext
1:
2:
sting a = "1.2";
double b = System.Convert.ToDouble(a)/10.0;


Allerdings ignoriert C# dabei den Punkt, weshalb ich in diesem Beispiel durch 10.0 teilen muss, um das richtige Ergebnis zu erhalten. Geht das auch eleganter, ohne durch 10 zu teilen?

Danke!

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Sa 19.07.08 11:48

Hallo!

Das Framework benutzt beim Konvertieren von / in Strings standardmäßig die Zahl-Formatierungen der Systemsprache. Bei einem deutschen System ist "." also nur der Tausender-Trennpunkt und nicht der Dezimal-Separator.

Du kannst aber erreichen, dass eine bestimmte CultureInfo benutzt wird:

Delphi-Prism-Quelltext
1:
2:
3:
4:
5:
  var ci := new CultureInfo('en-US');
  var b : Double;
  var s := '1.2';
  if not Double.TryParse(s, NumberStyles.Any, ci, out b) then
    b := Double.NaN;


Grüße
Christian


stugi82 - Sa 19.07.08 12:30

Danke Christian! Bin immer wieder überrascht, von den Möglichkeiten, die C# bietet.

Gruß Jörg