int、double都能調用Parse()函數,Parse(string str);如果轉換成功就成功,失敗就會拋出一個異常;
相應地有一個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();
}
}
}
如果兩個類型變量不兼容,比如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();
}
}
}