完整的C#程序:
using System;
class Program
{
static void Main()
{
String source;
Console.Write("请输入字符串:");
source = Console.ReadLine();
int num1;
double num2;
if (int.TryParse(source, out num1))
Console.WriteLine("{0}都是数字,并且是整数:{1}",source,num1);
else if (double.TryParse(source, out num2))
Console.WriteLine("{0}都是数字,并且是浮点数:{1}", source, num2);
else
Console.WriteLine("{0}不是数字", source);
}
}
运行测试:
请输入字符串:123
123都是数字,并且是整数:123
请输入字符串:1e-4
1e-4都是数字,并且是浮点数:0.0001
请输入字符串:3.14
3.14都是数字,并且是浮点数:3.14
请输入字符串:a3
a3不是数字
用javascript中的方法isNaN(参数); isNaN(参数)函数检验参数是否是一个数字 ,注意:不是数字返回true 是的话返回false;
不想用正则表达式就可以:
public bool IsNumber(string str){
try{
double.Parse(str);
return true;
}catch(Exception e){
return false;
}
}
把一个字符串转换成double,如果成功就肯定是数字,出现异常就不是数字。
不过这样不科学。有点取巧。
bool isNum = Regex.IsMatch(input, @"^[1-9][0-9]*(\.[0-9]+)?$");
System.Text.RegularExpressions.Regex.IsMatch("123", "^\\d+(.)?\\d{0,}$")