[英]Why double.Parse() throws FormatException only through rdp?
我有一个很奇怪的错误。 我有一个.Net应用程序,将字符串解析为双精度型时会出现异常。 但这只是通过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();
}
}
当我在本地执行时可以正常工作,在RDP中我有一个错误
任何想法? 该计算机是Windows 2012R2,也是域控制器。 我尝试以相同的用户执行此小应用程序,唯一的区别是RDP /本地
谢谢您的帮助
double.Parse
。默认情况下, double.Parse
在当前环境上使用CurrentCulture
设置。
听起来您的远程环境使用了一种没有的文化.
作为NumberDecimalSeparator
的原因,这就是为什么要获取FormatException
的原因。
作为替代方案,您可以将InvariantCulture
用作具有的解析方法中的第二个参数.
已经作为NumberDecimalSeparator
。
double d = double.Parse(s, CultureInfo.InvariantCulture);
或者,您可以将本地环境中使用的相同区域性更改远程环境的区域性设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.