0

我尝试了以下方法:

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

...但有一个FormatException. 所以我想知道:如何将这样的值解析为浮点数/双精度数?

解析成浮点数

解析成双

4

1 回答 1

5

您有一个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),它也会失败。对于其他一些文化,它也可能会失败。

于 2013-03-23T15:58:20.597 回答