怎么判断textbox中的字符类型是数字还是其他?
比如:123和123.4
怎么判断这两个是数字啊?
谢谢了!

解决方案 »

  1.   

    private Boolean getbool(string str)
    {
    //因为数字的ascii码的值是48-57
    //所以可以通过判断ascii码的值来得到结果
    Boolean flag=true;
          byte[] by =System.Text.Encoding.ASCII.GetBytes(str);
    for(int i=0 ;i<by.Length;i++)
    {
    if ((Convert.ToInt32(by[i])<48) || (Convert.ToInt32(by[i])>57))
    {
    flag=false;
    }
    }
    return flag;
    } 实践:
    private void button5_Click(object sender, System.EventArgs e)
    {
    Boolean flag;
    flag=getbool(textBox1.Text );
    if (flag)
    {
    MessageBox.Show("是数字");
    }
    else
    {
    MessageBox.Show("不是数字");
    }
    }
      

  2.   

    try
    {
    decimal dec=decimal.Parse("123");
    dec=decimal.Parse("123.4");
    MessageBox.Show("是数字");
    }
    catch
    {
    MessageBox.Show("不是数字");
    }
      

  3.   

    觉得还是try,catch来得简单实用。
      

  4.   

    用Convert.ToXXX转数字,不能转就是字符吧
      

  5.   

    1.异常
    2.字符循环,ascii码判断
    3.字符循环,IsNumber()(对于有小数点的数,好象不行)
    4.xiaoty(土羊)提的用正则表达式,不知道如何做,谁给个例子出来。
      

  6.   

    最简单的:
    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    string s = "0123456789" ;
    if ((s.IndexOf(e.KeyChar) < 0)&&e.KeyChar!=(char)13&&e.KeyChar!=(char)16&&e.KeyChar!=(char)8)  
    {
    e.Handled = true;
    return;
    }
    }
      

  7.   

    最好就是用异常判断了!比如
    try{
    double.parse(textbox1.Text.Trim());
    }
    catch
    {
    MessageBox.Show("不是数字");
    }
      

  8.   

    正则表达式判断方法:
    using System.Text ;
    using System.Text.RegularExpressions ;
    ...
    string regextext = "^(-{0,1}|\\+{0,1})[0-9]+(\\.{0,1}[0-9]+)$";
    Regex regex = new Regex (regextext,RegexOptions.None );
    if(regex.IsMatch (textbox.text.tostring()) == true)
    MessageBox.Show("is a number.");
    else
    MessageBox.Show("isn't a number.");