2014-09-30 59 views
0

我有使用CultureInfo調用從我的機器獲取當前文化的問題。我必須使用數字分隔符作爲逗號(,)而不是點(。)使用當前文化

我去了區域設置 - >其他設置 - >十進制符號設置爲逗號(,)。

我有我的代碼如下所示

double number = 123.456; 
string convertToString = Convert.ToString(number, CultureInfo.CurrentCulture); 

我收到我的輸出相同123.456,但我預計產量123456(因爲我已經設置小數點符號爲逗號)

我試着顯式地設置的數字格式如下所示

CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); 
culture.NumberFormat.NumberDecimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; 

我在示例控制檯應用程序嘗試這樣做,我得到所需的輸出(123456),但如果我在WPF APPLICA嘗試它不工作。

我可以知道我究竟在哪裏做錯了!

回答

0

嘗試使用CultureInfo.InstalledUICulture 這將讀取默認的操作系統設置。

+0

CultureInfo.InstalledUICulture總是給我「EN-US」,即使在艱難的區域設置我把它改成法國(「FR-FR」) – Chethan 2014-09-30 09:49:04

0

文化實際上是執行線程的屬性。你能否明確地將當前線索的文化設置爲你需要的並檢查的文化?

//France as an example 
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR"); 
+0

這個工程的文化信息「FR-FR」,但該機器設置「en-US」或任何其他文化,其不考慮文化信息!我不想硬編碼任何文化信息,它應該檢測我的機器文化信息並相應地輸出! – Chethan 2014-09-30 10:04:42