double b;
this.textbox1.text="123.45"
a=convert.todouble(this.textbox1.text.tostring());
为什么总显示:
用户代码未处理 System.FormatException
  Message="输入字符串的格式不正确。"第三行改成:
a=double.Parse(this.textBox3.Text.ToString());也显示同样错误信息;重写测试:
a = double.Parse("123.45");
a++;
this.textBox4.Text = Convert.ToString(a);这样一点错误都没有,怎么回事?

解决方案 »

  1.   

    convert 总是引发 invalidcastException异常,需要处理异常
      

  2.   

    把它们都改成类似如下:
    a=Double.Parse(Decimal.Parse(this.textBox3.Text.ToString()));就OK了.
      

  3.   

    Text属性本来就是String类型了。还执行ToString干啥啊?
      

  4.   

    double b;
    this.textbox1.text="123.45"
    double a=convert.todouble(this.textbox1.text);
      

  5.   

    a=double.Parse(this.TextBox3.Text.Trim());
      

  6.   

    double b;
    this.TextBox1.Text="123.45";
    b=Convert.ToDouble(this.TextBox1.Text.ToString());
    这样的没错啊,我机子上试了可以的
      

  7.   

    double b;
    string str="123.45";
    double a=Convert.ToDouble(str);
    Console.WriteLine(a);
    Console.ReadLine();// 这样我没测试出你说的错误,
    但是在 str="123 .45";
    这样就出现了你的那样的提示错误了.~!
      

  8.   

    你的double b;没有用上
    而a却又没有声明。。
      

  9.   

    文本框没有空字符
    b=Convert.ToDouble(this.TextBox1.Text.ToString());

    b=Convert.ToDouble(this.TextBox1.Text);
    我都试过,一样错误
    下面的测试我的机子上也没错,但只要拉上this.textbox1.text就出错
    double b;
    this.TextBox1.Text="123.45";
    b=Convert.ToDouble(this.TextBox1.Text.ToString());
      

  10.   

    使用下一语句:
    this.textBox3.Text=this.comboBox2.SelectedValue.ToString();
    double b;
    b= Double.Parse(Decimal.Parse(this.textBox3.Text.ToString()));错误 1 与“double.Parse(string)”最匹配的重载方法具有一些无效参数
    改成如下:
    this.textBox3.Text=this.comboBox2.SelectedValue.ToString();
    double b;
    b = double.Parse(this.textBox3.Text.Trim());用户代码未处理 System.FormatException
      Message="输入字符串的格式不正确。"
      

  11.   

    double b;
    this.TextBox1.Text="123.45";
    b=Convert.ToDouble(this.TextBox1.Text.ToString());我就奇怪了,为什么不是this.textBox1而是this.TextBox1呢?
    楼主要注意大小写。。我测试过,只要把大小写改过来,这段代码没有错误。。
      

  12.   

    我没有复制代码,发问题时是再写的,大小写可能有误,但程序绝对没错请看清问题
    double b;
    this.TextBox1.Text="123.45";
    b=Convert.ToDouble(this.TextBox1.Text.ToString());这样做我这儿也正常,没有出错
    可就是从TEXTBOX提出数字格式的字符串时,再转换为DOUBLE型就出错,我试过清除前后的空格,错误依然
      

  13.   

    不好意思,没写清楚
    this.textBox3.Text = this.comboBox2.SelectedValue.ToString();
    double bbb;
    bbb = Convert.ToDouble( this.textBox3.Text );
    这样时出错
      

  14.   

    楼主犯的是低级错误啊。。
    你的TextBox里面可能是空值,不是数字值,当然就不能转了。。
    double b;
    this.TextBox1.Text="123.45";
    b=Convert.ToDouble(this.TextBox1.Text.ToString());
    这个为什么可以转,因为你赋了数字值123.45了。。而a=double.Parse(this.textBox3.Text.ToString());这个为什么不行?
    因为textBox3里的值不是数字型的。。
      

  15.   

    this.textBox3.Text = this.comboBox2.SelectedValue.ToString();
    我只写这一行语句时,我确定this.textBox3.Text不是空值,是数字值
    可是我把"123.45"赋给this.textBox3.Text后,再
    b=Convert.ToDouble(this.TextBox3.Text.ToString());
    就无错
      

  16.   

    那我问你:this.textBox3.Text = this.comboBox2.SelectedValue.ToString();
    这一句执行之后textBox3的值是多少?是不是空的?
      

  17.   

    解决了
    this.textBox3.Text = this.comboBox2.SelectedValue.ToString();
    这一句执行后textBox3绝对是数字值
    问题不是在这儿,我用的是comboBox1_SelectedIndexChanged事件,但是在程序刚执行时就已经调用这一事件,这时textBox3是空值,所以错误,还是我没搞清楚啊,嘿嘿
    min_jie分析的非常对,只是我前面的代码有问题,多谢各位兄弟!!!
      

  18.   

    下次遇到类似问题记得先将TextBox1.Text输出来亲眼看看。不要对发现的问题觉得奇怪,万事必有因。