| 

.NET C# Java Javascript Exception

0
Hallo,

ich möchte eine Zahl in Exponentialschreibweise die in einem String liegt
in einem Decimal oder Double konvertieren?

Beispiel:
String s = "0.13131E+3";
Double d = s; // ?????

Viele Grüße

Michael
23.02.2011
Maik_1978 674 1 8
2 Antworten
2
String s = "0.13131E+3";
Double d = Double.Parse(s, CultureInfo.InvariantCulture);


CultureInfo.InvariantCulture - ist notwendig, weil er den Punkt sonst für ein Tausendertrennzeichen hält und dann bekommst du 13131000.0 statt 131.31

Nachtrag:
für decimal sollte man so vorgehen (jetzt auch mit TryParse)
Decimal number;
var value = "0.13131E+3";
if(!Decimal.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out number))
Console.WriteLine("Parsing failed");
23.02.2011
Hendrik Lösch 1,5k 1 9
Jetzt bin ich aber doch ratlos: Double.Parsep klappt, Decimal.Parse nicht.
Maik_1978 23.02.2011
1
Aus der Msdn:

string value;
double number;

// Parse a floating-point value with a thousands separator.
value = "0.13131E+3";
if (Double.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
23.02.2011
Jorgen Schumann 1,6k 1 9
1
Vielen Dank für eure super schnellen Antworten!!! Gruß Michael
Maik_1978 23.02.2011
Jetzt bin ich aber doch ratlos: Double.Parsep klappt, Decimal.Parse nicht.
Maik_1978 23.02.2011
Das ist zwar der schnellste Weg, kann aber zu falschen Werte führen, siehe meine Antwort.
Hendrik Lösch 23.02.2011

Stelle deine Konvertieren-Frage jetzt!