【发布时间】:2019-03-06 13:29:30
【问题描述】:
我有一个 2D 刺痛列表,我正在将其中的一些转换为双打。这在我的电脑上完美运行,但当有人出于某种原因使用不同的十进制分隔符时失败
try
{
foreach (var line in data)
{
if (line[25] != "")
{
double market_size = Convert.ToDouble(line[25].Replace(",", "."));
if (line[59] != "") Players.Add(new string[] { line[1], line[0], Proper_Name(line[58]), (Convert.ToDouble(line[59].Replace(",", ".")) * market_size).ToString(), market_size.ToString() });
else Players.Add(new string[] { line[1], line[0], "No player", "0", market_size.ToString() });
if (line[61] != "") Players.Add(new string[] { line[1], line[0], Proper_Name(line[60]), (Convert.ToDouble(line[61].Replace(",", ".")) * market_size).ToString(), market_size.ToString() });
else Players.Add(new string[] { line[1], line[0], "No player", "0", market_size.ToString() });
if (line[63] != "") Players.Add(new string[] { line[1], line[0], Proper_Name(line[62]), (Convert.ToDouble(line[63].Replace(",", ".")) * market_size).ToString(), market_size.ToString() });
else Players.Add(new string[] { line[1], line[0], "No player", "0", market_size.ToString() });
if (line[65] != "") Players.Add(new string[] { line[1], line[0], Proper_Name(line[64]), (Convert.ToDouble(line[65].Replace(",", ".")) * market_size).ToString(), market_size.ToString() });
else Players.Add(new string[] { line[1], line[0], "No player", "0", market_size.ToString() });
if (line[67] != "") Players.Add(new string[] { line[1], line[0], Proper_Name(line[66]), (Convert.ToDouble(line[67].Replace(",", ".")) * market_size).ToString(), market_size.ToString() });
else Players.Add(new string[] { line[1], line[0], "No player", "0", market_size.ToString() });
}
}
}
catch (Exception except)
{
MessageBox.Show("Conversion error:" + Environment.NewLine + Environment.NewLine + except.ToString());
this.Close();
}
首先,我认为即使使用逗号而不是点,这也应该有效,但这不是我的主要问题。也就是说,当我收到异常错误时,它会显示第 454 行,这是 foreach 循环开始的地方。 我无法显示错误消息,因为它是捷克语,但它基本上指出这是第 454 行的转换错误。
【问题讨论】:
-
检查在不同文化之间正确转换小数。 daniweb.com/programming/software-development/threads/351186/…
标签: c# type-conversion except