簡體   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