c#Covert.ToDecimal在3.5和4.5框架以及xp机器中的差异
本文关键字:xp 机器 框架 ToDecimal c#Covert | 更新日期: 2023-09-27 18:20:47
我需要帮助
以下代码在安装了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(".", ",")
为什么?
我的猜测是,在这些Windows版本之间,为克罗地亚定义的区域设置可能发生了变化。如果您在MSDN中运行示例代码,在三台不同的电脑上输出设置,您会看到数字格式的什么?
区域性很可能不是在Windows Vista之前定义的。我猜人力资源在旧的操作系统中可能没有任何意义。