0

我需要这方面的帮助。
以下代码在安装了 3.5 和 4.5 .NET Framework 的 Win7/Win8 机器上运行良好。

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

2 回答 2

4

我的猜测是,为克罗地亚定义的区域设置可能在这些 Windows 版本之间发生了变化。如果您在MSDN中运行示例代码以输出三台不同 PC 上的设置,您会看到数字格式是什么?

于 2013-07-02T15:27:37.217 回答
0

这种文化很可能在 Windows Vista 之前没有定义。我猜 hr-HR 在旧操作系统中可能没有任何意义。

于 2013-07-02T15:28:56.450 回答