ben*_*700 1 .net c# string double parsing
我有一个非常奇怪的错误.我有一个.Net应用程序,在将字符串解析为double时会出现异常.但这只发生在RDP!
我做了一个简单的exe:
static void Main(string[] args)
{
try
{
string s = "1.5";
double d = double.Parse(s);
Console.WriteLine("RES: " + d);
Console.Read();
}
catch (Exception e)
{
Console.WriteLine("Message: "+e.Message+", trace: "+e.StackTrace);
Console.Read();
}
}
Run Code Online (Sandbox Code Playgroud)
当我在本地执行它工作,在RDP中我有一个错误 
任何的想法?该机器是Windows 2012R2,也是域控制器.我尝试用同一个用户执行这个小应用程序,唯一的区别是RDP/Local
谢谢您的帮助
double.Parse默认情况下CurrentCulture,在当前环境中使用您的设置.
听起来像你的远程环境使用的文化没有.那样NumberDecimalSeparator,这就是你得到的原因FormatException.
作为替代方案,您可以InvariantCulture在解析方法中使用第二个参数.作为NumberDecimalSeparator.
double d = double.Parse(s, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
或者,您可以在本地环境中使用相同的文化更改远程环境的区域性设置.