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)
{
double number = double.Parse("123.2");
Console.WriteLine(number);
Console.ReadKey();
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 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)
Console.ReadKey()
}
}
}
|
请发表评论