/// <summary>
/// 判断输入字符串是否为数字
/// </summary>
/// <param name="nValue">字符串</param>
/// <returns></returns>
public bool IsNumeric(string nValue)
{
int i, iAsc, idecimal = 0;
if (nValue.Trim() == "") return false;
for (i = 0; i <= nValue.Length - 1; i++)
{
iAsc = (int)Convert.ToChar(nValue.Substring(i, 1));
//'-'45 '.'46 '''0-9' 48-57
if (iAsc == 45)
{
if (nValue.Length == 1)//不能只有一个负号
{
return false;
}
if (i != 0) //'-'不能在字符串中间
{
return false;
}
}
else if (iAsc == 46)
{
idecimal++;
if (idecimal > 1) //如果有两个以上的小数点
return false;
}
else if (iAsc < 48 || iAsc > 57)
{
return false;
}
}
return true;
}
上面的方法,我覺得有些麻煩,如果用正則表達式一句就可以了,
using System.Text.RegularExpressions; //先添加引用
Regex.Match(textBox1.Text.Trim(), @"^-?[1-9]\d*$").Success //如果是正整數或負整數,則返回為true
/// 判断输入字符串是否为数字
/// </summary>
/// <param name="nValue">字符串</param>
/// <returns></returns>
public bool IsNumeric(string nValue)
{
int i, iAsc, idecimal = 0;
if (nValue.Trim() == "") return false;
for (i = 0; i <= nValue.Length - 1; i++)
{
iAsc = (int)Convert.ToChar(nValue.Substring(i, 1));
//'-'45 '.'46 '''0-9' 48-57
if (iAsc == 45)
{
if (nValue.Length == 1)//不能只有一个负号
{
return false;
}
if (i != 0) //'-'不能在字符串中间
{
return false;
}
}
else if (iAsc == 46)
{
idecimal++;
if (idecimal > 1) //如果有两个以上的小数点
return false;
}
else if (iAsc < 48 || iAsc > 57)
{
return false;
}
}
return true;
}
上面的方法,我覺得有些麻煩,如果用正則表達式一句就可以了,
using System.Text.RegularExpressions; //先添加引用
Regex.Match(textBox1.Text.Trim(), @"^-?[1-9]\d*$").Success //如果是正整數或負整數,則返回為true