你这个方法好象不是很妥,你还有一些可能性没有判断,比如有几个小数点的情况,我提供一个简单的方法吧,这是书中提供的,虽然有点手段,不过还是挺好用的
public bool ISNumber(string numberString)
{
    try
    {
       double num;
       num = double.Parse(numberString);
       return true;
    }
    catch
    {
        return false;
    }
}

解决方案 »

  1.   

    遇到 '+' 号开始的数字会怎么样呢?
    为何不用下面的代码试试看,我也没有试过,但应该是可行的。
    public bool IsNumeric(string str)
    {
        try
        {
           Decimal.Parse(str);
           return true;
        }
        catch(Exception e)
        {
           return false;
        }
    }
    又或者使用正则表达式判断也行啊
      

  2.   

    用TryParse呀,而且没有异常。
    bool TryParse(
       string s,
       NumberStyles style,
       IFormatProvider provider,
       out double result
    );如:
    double d = 0;
    bool isnum = Double.TryParse(str, NumberStyles.Float, null, out d);
    如果是正确的格式,数字值存入d变量,返回true,否则返回false。
    NumberStyles是System.Globalization下的一个枚举。