各位懂的帮帮忙。。。
请问在C#中需要进行数字运算时,如何避免因输入字母或其他符号而造成的错误呢?本人小白,刚刚学,这个问题折腾一天了。。。
[解决办法]
//1.TryParse
string inputS="文本框的值";
decimal dec;
if(decimal.TryParse(inputS,out dec))
{
//转换成功
}else
{
//转换失败
}
//TryParse 返回bool型 数据 判断是否转换成功。 成功的话 结果会 赋值给 传入的 out 参数
//2 正则匹配字符串 是否符合数学规范 百度上很多正则 - -。
[解决办法]
一般情况用try+catch捕获异常吧。
try {
代码;
}
catch {
返回错误提示;
}
[解决办法]
/// <summary>
/// 验证是否为数字
/// </summary>
/// <param name="strNum"></param>
/// <returns></returns>
public static bool IsNumber(string strNum)
{
const string num = "^[0-9]*[1-9][0-9]*$"; //正整数
return Regex.IsMatch(strNum, num);
}
一般使用正则表达式来验证输入的是不是数字
[解决办法]
这是控制键盘输入的,如果粘贴还是可以的,还可以在运算的地方再加验证;可以强转int,代码try catch包住,catch中捕获异常,说明输入有误,给出相关提示。。。
//病床号只能输入数字
private void txtValue_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = Key_PressMethod(e.KeyChar);
}
/// <summary>
/// 控制TextBox中只能输入数字 8为删除健
/// </summary>
/// <param name="c">e.KeyChar</param>
/// <returns></returns>
public static bool Key_PressMethod(char c)
{
//阻止从键盘输入键
bool result = true;
if ((c >= 48 && c <= 57)
[解决办法]
c == 8)
{
result = false;
}
return result;
}