c#里的decimal.TryParse方法怎么用,我是新手,求大神用通俗易懂的话尽量详细一点说明白谢谢

 我来答
376710727
2016-05-30 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1223万
展开全部

TryParse的意思和他字面一样,  尝试转换。返回bool类型

比如你的程序需要用户输入2个数字, 程序计算2个数字之和,用户输入的类型是string类型

但是你必须要求用户输入的是数字,而不是文字(abc),所以,这里就需要用TryParse来进行判断用户输入的是否可以转换为decimal。

以一个简单的控制台为例 

Sum() //求和
{
     Consolo.WriteLine("Enter First Number");
     string str1= Consolo.ReadLine();//读取用户输入, 得到的是个string类型
     Consolo.WriteLine("Enter SecondNumber");
     string str2= Consolo.ReadLine();//读取用户输入, 得到的是个string类型
     
     //开始判断是否可以转成数字类型
     decimal num1 ; //定义两个数字类型
     decimal num2;
     if(decimal.TryParse(str1,out num1) && decimal.TryParse(str2,out num2))
     {
           Consolo.WriteLine("Sum ="+(num1+num2));
           Consolo.Readkey;
     }
    else{
           Consolo.WriteLine("Entered invalid type,Try again!");
           return;
     }
}

这里面  decimal.TryParse(str1,out num1)就是用法,

尝试将str1 转换为decimal形式, 如果无法转换, 则返回false。  

如果可以转换, out是关键字,表示将结果输出给哪个变量 ,上面代码是将转换的结果给num1, 同时返回true


其实很简单的,写一次就会了。

追问

恩恩 你刚才说的我都懂了 这个decimal是什么意思啊?? 还有在什么情况下这个方法会返回false呢??

我刚才想了想是不是如果

  1. int i;

  2. if(int.TryParse("3.15",out i)){.....}

    这样会转换失败啊???

追答
decimal 是个类型啊 ,双精度浮点数, float是单精度浮点数, 就是有小数点!
int是整型,就是没有小数点。 string是字符串,
这些基础建议你仔细看MSDN的文档,这些基础非常重要, 初学的时候一定要学扎实。

上面我说了,如果无法转换,就返回false了。
比如string str = “123”,这个str是可以转成int类型或者decimal类型的,
但是string str2 = “abc ”,他就没办法转成任何数字类型。 这种情况下
decimal.TryParse(str2,out num) 就返回false 了。
dalmeeme
2016-05-30 · TA获得超过2913个赞
知道大有可为答主
回答量:1493
采纳率:81%
帮助的人:1041万
展开全部
decimal value;
if(decimal.TryParse("3.15",out value))
Console.Write(value*value);
解释:TryParse方法尝试将给定的文本转换成decimal型浮点数,如果转换成功,方法返回true,变量value里就是转换后的值;如果不能转换,方法返回false,变量value得到值0。

上面的示例是转换成功的,并输出value的平方。
追问

decimal可以是任何类型么?? 还有求大神告诉我 这个是什么意思

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式