c#中的类型转换

Parse类型转换

Parse()函数

int、double都能调用Parse()函数,Parse(string str);如果转换成功就成功,失败就会抛出一个异常;

TryParse()函数

相应地有一个TryParse函数,bool TryParse(string str,out int a);这里的out参数相当于c++中的&,引用(区别是c#的这个方法里必须对a赋值,且所有分支都要赋值)。如果能够转,就返回True,并把值放在a里面,如果失败的话a赋值为0,double也是这样。

测试代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace parse类型转换
{
    class Program
    {
        static void Main(string[] args)
        {
            //使用convert进行转换,过得去就成功了,过不去就抛异常;convert内部调用的是类型的.Parse();
            double number = double.Parse("123.2");
            Console.WriteLine(number);
            Console.ReadKey();
            //int.tryParse;尝试着讲一个字符串转换成int类型;使用tryParse进行类型转换,成功的时候返回true,并把值返回到第二个参数里面。失败时,返回false,将第二个参数赋值为0
            double num = 10;
            bool result = double.TryParse("ab123abc",out num);
            Console.WriteLine(num);
            Console.ReadKey();

        }
    }
}

Convert类型转换

应用场景

如果两个类型变量不兼容,比如string与int或stirng与double。这个时候可以使用一个叫做Convert的转换工厂进行转换。使用Convert进行类型转换的时候要注意面儿上必须过得去。使用convert进行转换,过得去就成功了,过不去就抛异常;convert内部调用的是类型的.Parse();

测试代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace convert类型转换
{
    class Program
    {
        static void Main(string[] args)
        {
            //如果两个类型变量不兼容,比如string与int或stirng与double。这个时候可以使用一个叫做Convert的转换工厂进行转换。
            //使用Convert进行类型转换的时候要注意面儿上必须过得去。
            string s = "123";
            double d = Convert.ToDouble(s);
            int n = Convert.ToInt32(s);
            Console.WriteLine(d);
            Console.WriteLine(n);
            Console.ReadKey();
        }
    }
}

应用

让用户输入姓名 语文 数学 英语 三门课的成绩,然后给用户显示 xx 你的总成绩是xx分,平均成绩是xx分;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Convert应用
{
    class Program
    {
        static void Main(string[] args)
        {
            //让用户输入姓名 语文 数学 英语 三门课的成绩
            //然后给用户显示 xx 你的总成绩是xx分,平均成绩是xx分;
            Console.WriteLine("请输入你的姓名");
            string name = Console.ReadLine();
            Console.WriteLine("请输入你的语文成绩");
            double chineseScore = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("请输入你的数学成绩");
            double mathScore = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("请输入你的英语成绩");
            double EnglishScore = Convert.ToDouble(Console.ReadLine());
            double sum = chineseScore+mathScore+EnglishScore;
            double average =sum/3;
            Console.WriteLine("{0},你的总成绩为{1},平均成绩为{2:0.00}", name, sum, average);//这里使用了一个小技巧,通过:0.00限制了输出精度;
            Console.ReadKey();
        }
    }
}
posted @ 2015-05-12 20:40  在河之博  阅读(2869)  评论(0编辑  收藏  举报