可能重复:
How to identify if string contain a number?
在VB中有一个IsNumeric函数,在c#中有类似的东西吗?
为了绕开它,我刚刚写了代码:
if (Int32.Parse(txtMyText.Text.Trim()) > 0)我只是想知道是否有更好的方法来做到这一点。
发布于 2012-03-21 17:04:13
您可以编写扩展方法:
public static class Extension
{
public static bool IsNumeric(this string s)
{
float output;
return float.TryParse(s, out output);
}
}发布于 2012-03-21 17:04:52
如果字符串不是有效数字,则应使用TryParse - Parse抛出异常--例如,如果要测试有效整数:
int v;
if (Int32.TryParse(textMyText.Text.Trim(), out v)) {
. . .
}如果要测试有效的浮点数:
double v;
if (Double.TryParse(textMyText.Text.Trim(), out v)) {
. . .
}还请注意,Double.TryParse有一个重载版本,其中包含额外的参数,指定控制解析过程的各种规则和选项,例如本地化(“.”)。或者“,”)-见http://msdn.microsoft.com/en-us/library/3s27fasw.aspx。
发布于 2012-03-21 17:05:11
我想你需要一些更普通的东西。试试这个:
public static System.Boolean IsNumeric (System.Object Expression)
{
if(Expression == null || Expression is DateTime)
return false;
if(Expression is Int16 || Expression is Int32 || Expression is Int64 || Expression is Decimal || Expression is Single || Expression is Double || Expression is Boolean)
return true;
try
{
if(Expression is string)
Double.Parse(Expression as string);
else
Double.Parse(Expression.ToString());
return true;
} catch {} // just dismiss errors but return false
return false;
}
}希望能帮上忙!
https://stackoverflow.com/questions/9809340
复制相似问题