我尝试了以下内容:
string val = "0.0000e+000";
float.Parse(val);
......还有FormatException
。所以我想知道:如何将这样的值解析为float / double?
答案 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
),它也会失败。对其他一些文化也可能会失败。