C#如何判断输入的是数值
做一个windows应用程序,计算圆的周长.用一个textbox作为输入的半径输入的值要如何判断是数值privatevoidb1_Click(objectsender,E...
做一个windows应用程序,计算圆的周长.
用一个textbox作为输入的半径
输入的值要如何判断是数值
private void b1_Click(object sender, EventArgs e)
{
const double Pi = 3.14;
double r, l, v;
if (t1.Text == "")
label4.Text = "不能为空";
else
{
r = Convert.ToSingle(t1.Text);
l = Pi * r * 2;
v = Pi * r * r;
t2.Text = Convert.ToString(l);
t3.Text = Convert.ToString(v);
label4.Text = "";
}
}
这是我写的,不过只能判断输入的是否为空,我想判断输入的为数值要再写什么代码.希望各位大虾能说的详细下,我是刚学的
9楼的大虾那段代码出错了把Single.TryParse()改成Double.TryPharse就可以了,不过为什么改成这样就可以了呢?
有没哪位大哥能和我说下TryPharse和Pharse的作用 展开
用一个textbox作为输入的半径
输入的值要如何判断是数值
private void b1_Click(object sender, EventArgs e)
{
const double Pi = 3.14;
double r, l, v;
if (t1.Text == "")
label4.Text = "不能为空";
else
{
r = Convert.ToSingle(t1.Text);
l = Pi * r * 2;
v = Pi * r * r;
t2.Text = Convert.ToString(l);
t3.Text = Convert.ToString(v);
label4.Text = "";
}
}
这是我写的,不过只能判断输入的是否为空,我想判断输入的为数值要再写什么代码.希望各位大虾能说的详细下,我是刚学的
9楼的大虾那段代码出错了把Single.TryParse()改成Double.TryPharse就可以了,不过为什么改成这样就可以了呢?
有没哪位大哥能和我说下TryPharse和Pharse的作用 展开
10个回答
展开全部
如果是整型
int i;
if(int.TryParse(textbox.Text,out i))
{
//是整形,直接使用i
}
同时还有double.TryParse 等
补充:
private void b1_Click(object sender, EventArgs e)
{
const double Pi = 3.14;
double r, l, v;
if (t1.Text == "")
label4.Text = "不能为空";
else if(!Single.TryParse(t1.Text,out r){
label4.Text = "必须为数字";
}
else
{
// r = Convert.ToSingle(t1.Text); 已可用了
l = Pi * r * 2;
v = Pi * r * r;
t2.Text = Convert.ToString(l);
t3.Text = Convert.ToString(v);
label4.Text = "";
}
}
补充二:
TryParse 是尝试将字串转为数字,如果成功将out参数值,并返回true,否则out为默认值,返回false
Parse 是将数字串强制转换为数字,不成功将抛出异常
TryParse是C#2.0以后才有的
int i;
if(int.TryParse(textbox.Text,out i))
{
//是整形,直接使用i
}
同时还有double.TryParse 等
补充:
private void b1_Click(object sender, EventArgs e)
{
const double Pi = 3.14;
double r, l, v;
if (t1.Text == "")
label4.Text = "不能为空";
else if(!Single.TryParse(t1.Text,out r){
label4.Text = "必须为数字";
}
else
{
// r = Convert.ToSingle(t1.Text); 已可用了
l = Pi * r * 2;
v = Pi * r * r;
t2.Text = Convert.ToString(l);
t3.Text = Convert.ToString(v);
label4.Text = "";
}
}
补充二:
TryParse 是尝试将字串转为数字,如果成功将out参数值,并返回true,否则out为默认值,返回false
Parse 是将数字串强制转换为数字,不成功将抛出异常
TryParse是C#2.0以后才有的
参考资料: http://hly8.com
展开全部
你指的那个“为数”是“尾数”还是“位数”呢?
1.如果是位数:
textbox里面的值,有可能是字符串形式的"",(这是有值的``但为空字符串),也有可能是null,这两个是不同的,但是有一个共同的特征:那就是他们的长度都为0。
直接判断textbox.text.length==0就OK了,
注意.length返回的是int类型的
2.如果是尾数:
首先 拿到这个txtbox里面的值,把最后一位拿出来
String s=textbox.text;
String str = s.Substring(s.Length-1);
这个str就是你输入的最后一个数字,自己判断咯。
1.如果是位数:
textbox里面的值,有可能是字符串形式的"",(这是有值的``但为空字符串),也有可能是null,这两个是不同的,但是有一个共同的特征:那就是他们的长度都为0。
直接判断textbox.text.length==0就OK了,
注意.length返回的是int类型的
2.如果是尾数:
首先 拿到这个txtbox里面的值,把最后一位拿出来
String s=textbox.text;
String str = s.Substring(s.Length-1);
这个str就是你输入的最后一个数字,自己判断咯。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
采用C#中提供的正则表达式来验证,方便快捷!
//命名空间
using System.Text.RegularExpressions;
//将要用来做验证的Regex对象
Regex reg = new Regex("[^0-9]");
//用字符串与正则表达式进行验证
if(reg.IsMatch(要检索的字符串))
{
//如果不是数字的处理
}
else
{
//如果是数字的处理
}
//命名空间
using System.Text.RegularExpressions;
//将要用来做验证的Regex对象
Regex reg = new Regex("[^0-9]");
//用字符串与正则表达式进行验证
if(reg.IsMatch(要检索的字符串))
{
//如果不是数字的处理
}
else
{
//如果是数字的处理
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用Int32.Parse,外面套个try,不抛异常就是数值,抛了就不是,或者TryParse根据返回值判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你段代码,正则表达是写的.复制过去就行了.
public bool IsNumber(String strNumber)
{
Regex objNotNumberPattern = new Regex("[^0-9.-]");
Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}
public bool IsNumber(String strNumber)
{
Regex objNotNumberPattern = new Regex("[^0-9.-]");
Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询