2013-02-20 62 views
0

我有一個字符串值,包含經度或緯度值。字符串加倍問題,刪除點

但是,當我嘗試將其轉換爲雙精度型時,我最終得到一個數字,其中點被刪除並放在最後。

這不是我想要的。我錯過了什麼?

這是我得到的值:200,5,1.4928184,0.1609203,這是我使用來獲取值的方法:

var responseBytes = ms.ToArray(); 
       var encoding = new System.Text.ASCIIEncoding(); 
       var coords = encoding.GetString(responseBytes); 
       var parts = coords.Split(new char[] { ',' }); 


//this piece of code returns me wrong values! When I debug this piece parts[2] is exactly 1.4928184 
       return new Coordinaat(Double.Parse(parts[2]), 
        Double.Parse(parts[3])); 

下面的構造見代碼示例:

public Coordinaat(double lat, double lon) 
     { 
      this.Latitude = lat; 
      this.Longitude = lon; 
     } 

輸出: lat 114928184 lon 01609203 - - >我的點在哪裏?

回答

4

您可能正在造成這種影響的文化(如德語)。解析時使用CultureInfo.InvariantCultre

Double.Parse("123.22",CultureInfo.InvariantCulture) 
+2

荷蘭!=德國:-) – dtb 2013-02-20 12:33:12

+0

荷蘭體系可能與德國文化相同。這固定了它。謝謝。 – Rob 2013-02-20 12:34:16

+0

或根據荷蘭文化(或幾乎任何歐洲大陸文化)。 – 2013-02-20 12:34:26