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

本文关键字:字符串 格式 不正确 输入 int 转换 | 更新日期: 2023-09-27 18:36:40

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

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

}

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

其中一个文本框可能是无法转换为 int 的值。一种解决方案是使用 in.首先尝试解析方法

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

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

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

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

如果这是问题所在,您可以查看此帖子:C# - 从输入数字中删除空格以具有 int