德国系统上的Double.Parse导致逗号而不是小数点

Pac*_*man 1 c# globalization

我有以下内容:

 private static string someValue = "0.1";
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为double才能进行一些计算.在德国系统上,我将转换为0,1而不是0.1,我需要它为0.1.我尝试了以下方法:

double d = Convert.ToDouble(s_valueDeadband10Percent, CultureInfo.InvariantCulture.NumberFormat); // still getting 0,1
Run Code Online (Sandbox Code Playgroud)

double d = Convert.ToDouble(s_valueDeadband10Percent, CultureInfo.InvariantCulture); // still getting 0,1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

Jon*_*eet 5

在德国系统上,我将转换为0,1而不是0.1,我需要它为0.1.

不,你没有得到其中任何一个.你得到的double值大约是十分之一.一个double值不是文本"东西"都没有.它可以转换为文本,但这是一个不同的操作.你需要找到此操作,并更改使用的CultureInfo.InvariantCulture,如果你真的想要一个文本值.但是如果你可以在没有转换回字符串的情况下逃脱,那就更好了.

当然,如果可能的话,您应该将静态变量更改double为以:

private static double someValue = 0.1;
Run Code Online (Sandbox Code Playgroud)

这样你也可以避免解析.