2013-07-02 74 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在旧版操作系统中可能没有任何意义。