【问题标题】:C# Exception thrown: 'System.FormatException' in mscorlib.dll抛出 C# 异常:mscorlib.dll 中的“System.FormatException”
【发布时间】:2016-12-26 14:28:51
【问题描述】:

抛出异常:System.FormatException in mscorlib.dll

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

我整天都在这。请帮忙!以上是顺便说一句的错误消息。我对 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);
        }
    }

【问题讨论】:

标签: c#


【解决方案1】:

这些可能是可能的问题,

给定的输入可能不是可以转换为双精度的格式

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);

【讨论】:

  • 所有文本框的给定输入是数字,而组合框的给定输入是字母。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    问题在于这一行:

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

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

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

    d= Convert.ToDouble(comboBox.SelectedValue)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多