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");
// 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);