2013-07-02 118 views
0

我需要幫助。
下面的代碼在安裝了3.5和4.5 .NET Framework的Win7/Win8機器上運行良好。c#Covert.ToDecimal在3.5和4.5框架和xp機器上的差異

CultureInfo info = CultureInfo.CreateSpecificCulture("hr-HR"); 
string ui = txtUkupanIznos.Text.Trim(); 
decimal pvalue; 

if (decimal.TryParse(ui, NumberStyles.Any, info, out pvalue)) 
{ 
    decimal poreznaStopa = 0.00m; 
    decimal ukupanIznos = 0.00m; 
    try 
    { 
     poreznaStopa = Convert.ToDecimal(txtstopa.Text.Replace(".", ","), info); 
     ukupanIznos = Convert.ToDecimal(ui.Replace(".", ","), info); 
    } 
    ... 

但隨着安裝了.NET Framework 3.5 SP1的XP的機器上,這將引發一個出現FormatException所以我需要刪除Replace(".", ",")

爲什麼?

回答

4

我的猜測是克羅地亞定義的區域設置可能在這些Windows版本之間發生了變化。如果您運行MSDN中的示例代碼以在三臺不同的PC上輸出設置,您對數字格式有什麼看法?

0

在Windows Vista之前未定義文化的可能性更大。我猜測hr-HR在舊版操作系統中可能沒有任何意義。