字符串和双重问题非常奇怪


string TestVarStrg = "3.1";
double TestVarDoub = Convert.ToDouble(TestVarStrg);
MessageBox.Show(TestVarDoub.ToString());

使用此代码,我可以在模拟器" 31"上的消息框中。在我的Lumia 920上一样。但是在我的Lumia 1520上,我得到了" 3.1"。Bouth设备具有最后一次Lumia Black更新。实际上,我需要" 3.1"作为双重。" 31"也可以,但是在所有设备上。对这种行为有什么想法吗?或另一种将字符串转换为double的方法?

请考虑十进制标志取决于文化设置。使用超负荷可以提供IFORMATPROVIDER:

http://msdn.microsoft.com/de-de/library/9s971(v = vs.110).aspx

,您的代码看起来像:

string TestVarStrg = "3.1";
double TestVarDoub = Convert.ToDouble(TestVarStrg, System.Globalization.CultureInfo.InvariantCulture);
MessageBox.Show(TestVarDoub.ToString());

请考虑只有在您的小数符号始终为"。"。

时才有效

相关内容

最新更新