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的作用
展开
 我来答
百度网友a1bb88b
推荐于2016-06-18 · TA获得超过135个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:235万
展开全部
如果是整型
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

百度网友8b2d35e0d
2008-07-17 · 超过11用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:0
展开全部
你指的那个“为数”是“尾数”还是“位数”呢?
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就是你输入的最后一个数字,自己判断咯。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
belsonB5
2008-07-16 · TA获得超过557个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:100万
展开全部
采用C#中提供的正则表达式来验证,方便快捷!

//命名空间
using System.Text.RegularExpressions;
//将要用来做验证的Regex对象
Regex reg = new Regex("[^0-9]");
//用字符串与正则表达式进行验证
if(reg.IsMatch(要检索的字符串))
{
//如果不是数字的处理
}
else
{
//如果是数字的处理
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Fade1234
2008-07-15 · TA获得超过1100个赞
知道小有建树答主
回答量:945
采纳率:0%
帮助的人:844万
展开全部
用Int32.Parse,外面套个try,不抛异常就是数值,抛了就不是,或者TryParse根据返回值判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenweidi232
2008-07-15 · TA获得超过674个赞
知道小有建树答主
回答量:858
采纳率:50%
帮助的人:395万
展开全部
给你段代码,正则表达是写的.复制过去就行了.

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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式