抛出C#异常:' System.FormatException'在mscorlib.dll中

时间:2016-12-26 06:17:11

标签: c#

抛出异常:System.FormatException

中的mscorlib.dll
  

{"输入字符串的格式不正确。"}

我整天都在这。请帮忙!以上是btw的错误信息。我对C#有点新意,所以我可以使用更详细的答案(我不能很好地使用行话)

public partial class Form1 : Form
{
    double a, b, d, f, g, t;
    string z;
    int c;


    public Form1()
    {
        InitializeComponent();
    }


    private void Form1_Load(object sender, System.EventArgs e)
    {

    }



    private void button7_Click(object sender, EventArgs e)
    {
        a = Convert.ToDouble(textBox18.Text);
        z = Convert.ToString(comboBox1);
        d = Convert.ToDouble(checkBox1);
        f = Convert.ToDouble(textBox13.Text);
        g = Convert.ToDouble(textBox14.Text);
        t = Convert.ToDouble(textBox19.Text);


        if (z == "a")
        {
            textBox15.Text = Convert.ToString(a * g * d * t);
        }
        else if (z == "b")
        {
            textBox15.Text = Convert.ToString(c);
        }
    }

3 个答案:

答案 0 :(得分:0)

这些可能是可能的问题,

给定的输入可能不是那些可以转换为double的格式

a = Convert.ToDouble(textBox18.Text);
    z = Convert.ToString(comboBox1.SelectedValue);
    d = Convert.ToDouble(checkBox1.Checked);
    f = Convert.ToDouble(textBox13.Text);
    g = Convert.ToDouble(textBox14.Text);
    t = Convert.ToDouble(textBox19.Text);

或者可能应该是

    z = Convert.ToString(comboBox1.SelectedValue);
   d = Convert.ToDouble(checkBox1.Checked);

答案 1 :(得分:0)

您需要从Controls获取值而不是解析控件本身,

喜欢 - >对于组合框,它应该是comboBox.SelectedValue

答案 2 :(得分:0)

问题在于这一行:

  textBox15.Text = Convert.ToString(a * g * d * t); 

因为你将d与其他值相乘而d包含不同类型的值,因为checkbox1没有返回正确的值

首先,您应该以正确的格式获取复选框的值,如:

d= Convert.ToDouble(comboBox.SelectedValue)