Windows 7 或 8 上的浮点解析不同?

float parse are different on Windows 7 or 8?

我今天在 Windows 7 上测试了我的程序。它没有用,我发现了错误。

以下情况:

我将字符串转换为浮点数。 Windows 8: float.Parse (String.Replace(".", ","))

但是在 Windows 7 上,我必须直接执行相反的操作才能避免崩溃。

Windows 7: float.Parse(String.Replace (",", "."))

Windows 7 float = 50.00

Windows 8 float = 50,50

这是为什么?

你知道解决这个问题的好方法吗?

这与 Windows 7 或 8 无关,而是您的 regional/localization 设置。如果您希望能够始终使用“.”进行解析。您可以将 System.Globalization.CultureInfo.InvariantCulture 指定为大多数解析函数的第二个参数。