【发布时间】:2019-04-06 22:13:49
【问题描述】:
基本刷新了一些制作转换器的C#知识;我试图在textbox 中没有数字时弹出一个窗口,但是当我单击button 时出现此错误:
System.FormatException: '输入字符串的格式不正确。'
private void btnConvert_Click(object sender, EventArgs e)
{
// Killogram convertion
double i = double.Parse(txtboxAmount.Text);
if (comboBoxFrom.SelectedItem == "KG" && comboBoxTo.SelectedItem == "LB")
{
double conver = i * 2.20462262185;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
if (comboBoxFrom.SelectedItem == "LB" && comboBoxTo.SelectedItem == "KG")
{
double conver = i / 2.2046;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
if (comboBoxFrom.SelectedItem == "ST" && comboBoxTo.SelectedItem == "KG")
{
double conver = i * 6.35;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
// Pound convertion
if (comboBoxFrom.SelectedItem == "LB" && comboBoxTo.SelectedItem == "ST")
{
double conver = i / 14;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
if (comboBoxFrom.SelectedItem == "ST" && comboBoxTo.SelectedItem == "LB")
{
double conver = i / 14;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
if (comboBoxFrom.SelectedItem == "LB" && comboBoxTo.SelectedItem == "KG")
{
double conver = i / 2.205;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
// Stone convertion
if (comboBoxFrom.SelectedItem == "ST" && comboBoxTo.SelectedItem == "LB")
{
double conver = i * 14;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
if (comboBoxFrom.SelectedItem == "LB" && comboBoxTo.SelectedItem == "ST")
{
double conver = i / 14;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
if (comboBoxFrom.SelectedItem == "LB" && comboBoxTo.SelectedItem == "KG")
{
double conver = i / 2.205;
double converdec = Math.Round((Double)conver, 2);
txtBoxResult.Text = "Converted Amount : " + converdec;
}
else if (comboBoxFrom.SelectedItem == null && comboBoxTo.SelectedItem == null)
{
MessageBox.Show("Enter a valid weight amount and/or select a unit of measurement.");
}
}
导致问题的行在下面我把它变成一个带有 to string 但没有运气的字符串
double i = double.Parse(txtboxAmount.Text);
【问题讨论】:
-
使用
double.TryParse()获得额外的好运。