如何将“0.0000e + 000”解析为float / double?

时间:2013-03-23 15:46:29

标签: c# .net

我尝试了以下内容:

string val = "0.0000e+000";
float.Parse(val);

......还有FormatException。所以我想知道:如何将这样的值解析为float / double?

Parsing into a float

Parsing into a double

1 个答案:

答案 0 :(得分:4)

您有一个小数点不同的CultureInfo.CurrentCulture(当前文化)。尝试使用不变文化解析它:

var x = Single.Parse("0.0000e+000", CultureInfo.InvariantCulture);

要说明问题:如果您是俄语,您当前的文化将设置为ru-RU。然后以下失败

CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("ru-RU");
var x = Single.Parse("0.0000e+000");
  

FormatException :输入字符串的格式不正确。

如果你是法国人(fr-FR),它也会失败。对其他一些文化也可能会失败。