2014-11-01 39 views
0

如何轉換在C#雙1,77到1.77?C# - 如何轉換,在

我有一個輸入文本與1,77,我想要替換爲1.77。

我已經試過

alturaaux =Convert.ToDouble(altura2).ToString(#,##); 

但沒有成功。

+0

這個問題可以幫助你http://stackoverflow.com/questions/4076789/converting-double-to-string-with-n-decimals-dot- as-decimal-separator-and-no-th – jandresrodriguez 2014-11-01 13:21:43

+1

爲什麼要轉換爲double?使用本地的String.replace方法:http://msdn.microsoft.com/en-us/library/czx8s9ts(v=vs.110).aspx。你沒有*雙*開頭。 – usr2564301 2014-11-01 13:33:38

+0

你爲什麼得到1,77?它是一種文化事物(即許多歐洲文化使用'',''作爲小數分隔符)。如果你存儲的東西實際上是一個十進制字符串,也許你應該考慮在存儲時轉換它,當你在正確的文化中。 – 2014-11-01 13:40:25

回答

2

您可以先將其替換爲字符串,而不是將逗號替換爲點。

string entered = "1,77"; 
string doubleString = entered.Replace(',', '.'); 

if(Double.TryParse(doubleString, out number)) 
    return number; 
else 
    return null; 
+0

對於正確的建議+1,儘管所有這些都可以在一行中完成。 – Rahul 2014-11-01 13:51:30

+0

他說他會讓用戶輸入他們的區域貨幣,所以我把它分解了足夠讓他理解,再加上我相信他在作業上作弊是如此的好以至於讓他看起來比所需的更多的代碼。 – 2014-11-01 13:53:42

0

使用TryParse方法類似

double ret; 
double.TryParse("1,77".Replace(",", "."), out ret);