簡體   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