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