繁体   English   中英

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

[英]C# Exception thrown: 'System.FormatException' in mscorlib.dll

抛出异常: mscorlib.dll System.FormatException

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

我整天都在这。 请帮忙! 以上是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);
        }
    }

这可能是可能的问题,

给定的输入可能不是那些可以转换为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);

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

喜欢 - > for combobox它应该是comboBox.SelectedValue

问题出在这一行:

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

因为您将d与其他值相乘并且d包含不同类型的值,因为checkbox1不返回正确的值

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

d= Convert.ToDouble(comboBox.SelectedValue)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM