try
{
int.Parse(str);
}
catch()
{}

解决方案 »

  1.   

    自已写吧 public static bool IsNum(string ch)
    {
    string Digit= "1234567890";
    for(int i =0;i<ch.Length ;i++)
    {
    if (Digit.IndexOf( ch[i],0) ==-1) 
    {
    return false;
    }
    }
    return true;                                    
    } public static bool IsFloat(string str)
    {
    try
    {
    float.Parse(str);
    return true;
    }
    catch
    {
    return false;
    }
    }
      

  2.   

    有一个函数可以判断单个字符是否为数字。
    bool char.IsDigit();
      

  3.   

    string s = "-3.14159E+10"  也要能转换为数字 除了try{}catch{},有没有更好的,更快的方法?
      

  4.   

    我觉得一楼方法很好,不过可以作点改变,首先不能用int,而是用double。另外可以定义一个函数(二楼的方法太麻烦了):public bool IsNumeric(string s, out double value)
    {
       bool bReturn = true;
       try
       {
           value = double.Parse(s);
       }
       catch
       {
           value = 0;
           bReturn = false;
       }
       finnaly
       {
           return bReturn;
       }  
       
    }
    我试过,形式如string s = "-3.14159E+10",也能转换为double类型;
      

  5.   

    纠正一下,一个疏漏,忘了在finally中是不能有return的。改成这样就可以了,我在VS里验证了的。
    public bool IsNumeric(string s, out double value)
    {
       bool bReturn = true;
       try
       {
           value = double.Parse(s);
       }
       catch
       {
           value = 0;
           bReturn = false;
       }
       return bReturn;
          
    }调用:
    string s1="abc";
    string s2="-3.14159E+10";
    double d1,d2;
    bool ty1 = IsNumeric(s1,out d1);
    bool ty2 = IsNumeric(s2,out d2);
    结果:
    ty1=false;d1=0;
    ty2=true;d2=31415900000
      

  6.   

    楼上的,value好像是关键字哦