将“int”转换为“字符串”时出现问题,数学运算符也是如此

本文关键字:字符串 运算符 转换 int 问题 | 更新日期: 2023-09-27 18:25:16

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Not.Text =
              (Convert.ToInt32(quiz1per.Text)) * (Convert.ToInt32(quiz1poi.Text)) + 
              (Convert.ToInt32(quiz2per.Text)) * (Convert.ToInt32(quiz2poi.Text)) + 
              (Convert.ToInt32(odev1per.Text)) * (Convert.ToInt32(odev1poi.Text)) +  
              (Convert.ToInt32(odev2per.Text)) * (Convert.ToInt32(odev2poi.Text)) +  
              (Convert.ToInt32(vizeper.Text)) * (Convert.ToInt32(vizepoi.Text)) +  
              (Convert.ToInt32(finalper.Text)) * (Convert.ToInt32(finalpoi.Text));
        }
    }
}

当我到达最后一个分号时,我在将 int 转换为字符串时遇到了问题。我刚开始学习C#,我想先学习基本的东西。

将“int”转换为“字符串”时出现问题,数学运算符也是如此

C# 中的每个对象都有一个ToString()。 您可以直接调用ToString()结果。

private void button1_Click(object sender, EventArgs e)
{
    int result = 
      (Convert.ToInt32(quiz1per.Text)) * (Convert.ToInt32(quiz1poi.Text)) + 
      (Convert.ToInt32(quiz2per.Text)) * (Convert.ToInt32(quiz2poi.Text)) + 
      (Convert.ToInt32(odev1per.Text)) * (Convert.ToInt32(odev1poi.Text)) +  
      (Convert.ToInt32(odev2per.Text)) * (Convert.ToInt32(odev2poi.Text)) +  
      (Convert.ToInt32(vizeper.Text)) * (Convert.ToInt32(vizepoi.Text)) +  
      (Convert.ToInt32(finalper.Text)) * (Convert.ToInt32(finalpoi.Text));
     Not.Text = result.ToString();
}

您还需要使用int.TryParse。 如果在文本框中键入非数字值Convert.ToInt32将引发异常。

不能

将 int 分配给文本框的 text 属性。 要么将 int 格式化为字符串,

   Not.Text =
      (Convert.ToInt32(quiz1per.Text)) * (Convert.ToInt32(quiz1poi.Text)) + 
      (Convert.ToInt32(quiz2per.Text)) * (Convert.ToInt32(quiz2poi.Text)) + 
      (Convert.ToInt32(odev1per.Text)) * (Convert.ToInt32(odev1poi.Text)) +  
      (Convert.ToInt32(odev2per.Text)) * (Convert.ToInt32(odev2poi.Text)) +  
      (Convert.ToInt32(vizeper.Text)) * (Convert.ToInt32(vizepoi.Text)) +  
      (Convert.ToInt32(finalper.Text)) * (Convert.ToInt32(finalpoi.Text)).ToString();

或将其转换为字符串

   Not.Text =
      (string)(Convert.ToInt32(quiz1per.Text)) * (Convert.ToInt32(quiz1poi.Text)) + 
      (Convert.ToInt32(quiz2per.Text)) * (Convert.ToInt32(quiz2poi.Text)) + 
      (Convert.ToInt32(odev1per.Text)) * (Convert.ToInt32(odev1poi.Text)) +  
      (Convert.ToInt32(odev2per.Text)) * (Convert.ToInt32(odev2poi.Text)) +  
      (Convert.ToInt32(vizeper.Text)) * (Convert.ToInt32(vizepoi.Text)) +  
      (Convert.ToInt32(finalper.Text)) * (Convert.ToInt32(finalpoi.Text));

正如错误明确指出的那样,您无法将int分配给应该采用string的属性。

您可以调用 ToString() 方法将数字转换为string