繁体   English   中英

为什么double.Parse()仅通过rdp抛出FormatException?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM