你这个方法好象不是很妥,你还有一些可能性没有判断,比如有几个小数点的情况,我提供一个简单的方法吧,这是书中提供的,虽然有点手段,不过还是挺好用的
public bool ISNumber(string numberString)
{
try
{
double num;
num = double.Parse(numberString);
return true;
}
catch
{
return false;
}
}
public bool ISNumber(string numberString)
{
try
{
double num;
num = double.Parse(numberString);
return true;
}
catch
{
return false;
}
}
为何不用下面的代码试试看,我也没有试过,但应该是可行的。
public bool IsNumeric(string str)
{
try
{
Decimal.Parse(str);
return true;
}
catch(Exception e)
{
return false;
}
}
又或者使用正则表达式判断也行啊
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下的一个枚举。