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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#里的decimal.TryParse方法怎么用,我是新手,求大神用通俗易懂的话尽量详细一点说明白谢谢相关的知识,希望对你有一定的参考价值。

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呢??

我刚才想了想是不是如果

    int i;

    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 了。

参考技术A decimal value;
if(decimal.TryParse("3.15",out value))
Console.Write(value*value);
解释:TryParse方法尝试将给定的文本转换成decimal型浮点数,如果转换成功,方法返回true,变量value里就是转换后的值;如果不能转换,方法返回false,变量value得到值0。

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

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

以上是关于c#里的decimal.TryParse方法怎么用,我是新手,求大神用通俗易懂的话尽量详细一点说明白谢谢的主要内容,如果未能解决你的问题,请参考以下文章

decimal.TryParse和Convert.ToDecimal+try{} catch{}的性能比较

VS用C#写的程序,在引用里没有mscorlib,但是可以使用该程序集里的内容,怎么回事?

C# session怎么用?

c# 如何改变datagridview里的字体颜色

C#里的DataSet到底是干啥用的,怎么用?哪位高手帮我讲解讲解,谢谢啦!

C#里我要怎么清除DataGridView里的columns