2016-02-29 86 views
-1

,当我不能为我的生命弄清楚为什么错误不断抛出时,我有,看起来基本上相同,只是不乱扔此错误的其他程序。有任何想法吗?“输入字符串的不正确的格式”转换成int

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

抛出错误:

Input string was not in a correct format.

对不起。下面的代码:

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

}

+1

使用Int32.TryParse验证您是否有可转换值。下次总是发布代码,而不是代码的图像。 – LarsTech

+0

在该行上放置了一个断点,并确定textBoxAdd2的值是什么。 – billybob

+0

错误是告诉你该字符串格式不正确 - 换句话说,它不能被解析为一个int。 –

回答

0

可能会有一些答案,为什么这个问题的发生。 以下是您可以考虑的一些事情:

1)textBoxAdd1和textBoxAdd2中的值是什么? 您可能会遇到数量太大而无法放入Int32的问题,并且您可能需要更大的数据类型?

2)你有没有通过您的代码试图调试,并把一个断点,在那个特定的行?然后你会看到传入的内容,也许输入有一些格式问题 - 也许你可能需要去掉一些空格?

如果是这样的问题,你可以检查这个帖子: C# - remove whitespace from input number to have int

+0

这是空白问题。 – Audie

+0

我正在教VERY BASIC C#的几个孩子有这个问题。他们显然使用空格键而不是删除键来删除那里的文本框默认文本。谢谢! – Audie

+0

啊我明白了,很高兴我们明白了! – jerellm

1

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

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