转换为int时,“输入字符串格式不正确”

时间:2016-02-29 17:06:56

标签: c#

我不能为我的生活弄清楚为什么当我有其他程序看起来基本相同而不会抛出此错误时,错误会继续抛出。有什么想法吗?

sum = Convert.ToInt32(textBoxAdd1.Text) + Convert.ToInt32(textBoxAdd2.Text)

引发错误:

  

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

对不起。这是代码:

public partial class MainWindow : Window
{
    int sum;
    int sub;

    public MainWindow()
    {
        InitializeComponent();
        sum = 0;
        sub = 0;
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {
        textBlock.Text = "HELLO " + textBox.Text;
    }

    private void buttonadd_Click(object sender, RoutedEventArgs e)
    {
        sum = Convert.ToInt32(textBoxAdd1.Text) + Convert.ToInt32(textBoxAdd2.Text);
        textBlockadddisplay.Text = Convert.ToString(sum);
    }

    private void buttonsub_Click(object sender, RoutedEventArgs e)
    {
        sub = Convert.ToInt32(textBoxsub1.Text) + Convert.ToInt32(textBoxsub2.Text);
        textBlocksubdisplay.Text = Convert.ToString(sub);
    }
}

}

2 个答案:

答案 0 :(得分:1)

您的一个文本框可能是一个无法转换为int的值。一种解决方案是首先使用in.TryParse方法检查它们

int num1, num2;
if (int.TryParse(textBoxAdd1.Text, out num1) && int.TryParse(textBoxAdd2.Text, out num2))
{
    // They were assigned.
}

答案 1 :(得分:0)

为什么会出现此问题,可能会有很多答案。 以下是您可以考虑的一些事项:

1)textBoxAdd1和textBoxAdd2中有哪些值? 您可能遇到一个问题,其中数字太大而无法容纳在Int32中,您可能需要更大的数据类型?

2)您是否尝试过调试代码并在该特定行上设置断点?然后你会看到传入的确切内容,也许输入有一些格式问题 - 也许你可能需要删除一些空格?

如果这是问题,您可以查看此帖子: C# - remove whitespace from input number to have int