[英]Error: Input string is not in the correct format
我是编码新手,所以请帮助我,错误出现在下面的注释行中:
private void order_Click(object sender, EventArgs e)
{
double[] itemcost = new double[2000];
itemcost[0] = Convert.ToDouble(pep.Text) * price_pep; // Error here
itemcost[2] = Convert.ToDouble(all.Text) * price_all;
itemcost[3] = Convert.ToDouble(haw.Text) * price_haw;
itemcost[4] = Convert.ToDouble(veg.Text) * price_veg;
itemcost[5] = Convert.ToDouble(bre.Text) * price_bre;
itemcost[6] = Convert.ToDouble(chi.Text) * price_chi;
itemcost[7] = Convert.ToDouble(pot.Text) * price_pot;
itemcost[8] = Convert.ToDouble(bot.Text) * price_bot;
itemcost[9] = Convert.ToDouble(cok.Text) * price_cok;
itemcost[10] = Convert.ToDouble(mou.Text) * price_mou;
}
这是出现的错误:
您有一个转换错误,所以这意味着您的输入字符串无法转换为double 。 您应该确保名为pep的变量是一个数字。
这个错误是因为输入类型不能转换为double类型,我写了一个类似的代码来重现这个问题,这是我的测试结果:
我们可以加上try catch来解决这个问题,比如:
private void order_Click(object sender, EventArgs e)
{
try
{
double[] itemcost = new double[2000];
itemcost[0] = Convert.ToDouble(pep.Text) * price_pep;
itemcost[2] = Convert.ToDouble(all.Text) * price_all;
itemcost[3] = Convert.ToDouble(haw.Text) * price_haw;
itemcost[4] = Convert.ToDouble(veg.Text) * price_veg;
itemcost[5] = Convert.ToDouble(bre.Text) * price_bre;
itemcost[6] = Convert.ToDouble(chi.Text) * price_chi;
itemcost[7] = Convert.ToDouble(pot.Text) * price_pot;
itemcost[8] = Convert.ToDouble(bot.Text) * price_bot;
itemcost[9] = Convert.ToDouble(cok.Text) * price_cok;
itemcost[10] = Convert.ToDouble(mou.Text) * price_mou;
}
catch
{
MessageBox.Show("Please enter the correct number");
}
}
要小心,因为在编码中小数点分隔符需要是 a。 而不是 a,例如,如果用户写入数字“15,48”,解析将崩溃,因为它期望“15.48”,如果这是问题所在(您可以通过在第 194 行放置一个调试红点以及何时在 pep.Text 上按下按钮只是 hover 以查看存储在那里的值,如果这是问题请尝试这样的事情:
double.Parse(pep.Text.Replace(",", "."));
string.Replace() 是一种常用方法,它将字符串中的特定字符或字符串值(在本例中为“,”)替换为不同的值(在本例中为“.”以呈现可解析为双精度的值)。 如果您想了解有关此方法的更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.