2013-10-03 102 views
0

翻一番如果誰找到了解決這一解析字符串值與小數逗號分隔符

string x = "7,50"; 
string y = "5"; 
double a = double.Parse(x); 
double b = double.Parse(y); 
double c = a - b; 

任何一個,那麼結果一定是2,50。

,但我得到了70.因爲小數點X將被視爲75

+1

什麼是當前的文化設置? –

+0

我正在使用tr-TR。我還加了 double a = double.Parse(x,new CultureInfo(「tr-TR」)); double a = double.Parse(x,CultureInfo.InvariantCulture); 但它沒有工作 – ypbr

+0

@ypbr:「它沒有工作」是不夠的信息。請在問題中編輯一個簡短但完整的程序,幷包含輸出。 –

回答

2

只要指定適當的文化double.Parse。例如:

CultureInfo french = new CultureInfo("fr-FR"); 
double x = double.Parse("7,50", french); 

我懷疑你實際上有「7,5」作爲一種價值,但是 - 爲「7,50」是,如果你使用哪個沒文化解析爲「750」」不要用逗號作爲分隔符。

當然,如果這些貨幣值,則應考慮使用decimal代替double下手......

+0

這是一個高手中風! +1 –

+0

我有7.5作爲pardes價值。解析它之前是7,50,它解析後成爲7.5 – ypbr

+0

@ypbr:它根本不*清楚你的意思,但你需要明白,它本身(作爲'double')沒有逗號或一個點 - 它只是一個數字。格式只在將其轉換爲字符串或從字符串轉換時才變得相關。你沒有真正給我們足夠的信息,關於數據來自何處,你如何檢查值等。 –