这是一个计算薪水的方法,经理和兼职推销员的字符串是正确的,但是在计算销售经理和兼职技术员的薪水时,下面加红部分就会提示:输入字符串的格式不正确。求教啊~~!
类中用来计算薪水的方法:
      public double salaryPeo(string Position,int num)
        {
            if (Position =="兼职推销员") return 4 * num / 100;
            else if (Position =="销售经理") return 5000 + num * 5 / 1000;
            else if (Position == "兼职技术员") return 100 * num;
            else return 8000;
        }
button1中实例化之后开始计算的:
private void button1_Click(object sender, EventArgs e)
        {
            double salary;
            string name=textBox1.Text ;
            string ID;
            string position;
            //member m = new member();
            members ms=new members();            //职位
            if (this.radioButton4.Checked) { salary = ms.salaryPeo("兼职推销员", Convert.ToInt32(textBox2.Text)); position="兼职推销员";}
            else 
               if (this.radioButton3.Checked) { salary = ms.salaryPeo("兼职技术员", Convert.ToInt32(textBox4.Text)); position = "兼职技术员"; }
                else 
                    if (this.radioButton2.Checked) { salary = ms.salaryPeo("销售经理", Convert.ToInt32(textBox3.Text)); position = "销售经理"; 
                   else {salary = 8000;position="经理";}
            //读取ID
            ID=ms.getID();
            int NUM = Convert.ToInt32(ID );
            //NUM = NUM + 1;
            ms.setID(Convert.ToString (++NUM) );
            //
            Form4 f4 = new Form4(Convert.ToString(salary), Convert.ToString(name), Convert.ToString(ID), Convert.ToString(position ));
            f4.Show();
        }

解决方案 »

  1.   

    用ToDouble,要int的话就先转换为double再(int)转
    ToInt32的话,不能直接转换如"1.0"这样带小数点的数字
      

  2.   

    textBox4.Text.Trim()
    都这么写
      

  3.   

    ms.salaryPeo("销售经理", Convert.ToInt32(textBox3.Text))
    是double类型的
    你转成string 看看
      

  4.   


    我把ToInt32换成了ToDouble,但问题没有被解决哦,求教
      

  5.   


    我下面要用Convert.ToInt32(textBox3.Text)来计算薪水哦,而且他本来就是string类型的啊
      

  6.   

    你textbox里面的内容是什么,先自己断点监视看看
      

  7.   

    断点看看,计算出来的结果是不是存在这样的情况:00,000,00元  有逗号隔开这样的话  你就需要用Todecimal()来转换