C#中数据类型的转换
2013-12-08 14:22
246 查看
C#数据类型的转换分为两种形式:
1.隐式转换。(执行转换的规则很简单,可以让编译器执行转换,自动完成。)
2.显示转换。(转换的规则比较复杂,应进行某种类型的处理)
1.隐式转换
隐式转换不需要做任何工作,也不需要另外编写代码。隐式转换只处理可以自动互相转换的两种数据类型。相同类型的两个变量不需要隐式转换。如ushort和char的值是可以互换的,因为他们都可以存储0~65535之间的数字,在这两个类型间可以进行隐式转换。
隐式转换的方向是由低到高,即只能将较低精度的变量值转换为高精度的变量值,不可以将高精度转换为低精度。
2.显式转换
显示转换就是将一种类型的数据强制转换为另一种数据类型,但是两种数据之间必须有一定的可行性。例如不可能将 string str=“hello”转化成一个数字类型的。所以显示转换要有一定的可行性,否则会转换失败。并且在显示转化过程中有可能存在数据的丢失。例如将double db=12.74转换为int类型后的值为 12。
显示转换的4种方法:
l (type)要转换的数据
例:int intA;
double dbA=10.0020434;
intA=(int)dbA;
Tips:此方法适用于用于数字数据类型(byte、short、int、char、double等)之间的转换,不能用于字符串、布尔类型之间的转换。
l 变量名.ToString(要转换的数据)
例:string str;
double dbA=45667.39900;
str=dbA.ToString();
Tips:此方法只适用于其他类型向string类型转换。
l type.Parse(要转换的数据)
例:int intA;
string str=”34”
intA=int.Parse(str);
Tips:此方法只适用于string类型向其他类型数据(数字类型、布尔类型)的转换。
l Convert.To(type)(要转换的数据)
例: int intA;
string str=“213545”;
intA=Convert.ToInt(str);
Tips:此方法适用于任意两种数据类型之间的转换,并且转换效率比较高。
每种转换的方法不同效率也不同,要注意的的是高精度向低精度转换时有可能会出现数据丢失的可能,所以转换前要考虑到。其次转换是要有可行性,比如不可能将依据话转化成一个数字,这样在执行的时候会转换失败。
1.隐式转换。(执行转换的规则很简单,可以让编译器执行转换,自动完成。)
2.显示转换。(转换的规则比较复杂,应进行某种类型的处理)
1.隐式转换
隐式转换不需要做任何工作,也不需要另外编写代码。隐式转换只处理可以自动互相转换的两种数据类型。相同类型的两个变量不需要隐式转换。如ushort和char的值是可以互换的,因为他们都可以存储0~65535之间的数字,在这两个类型间可以进行隐式转换。
隐式转换的方向是由低到高,即只能将较低精度的变量值转换为高精度的变量值,不可以将高精度转换为低精度。
类型 | 可转换成功的类型 |
byte | short,ushort,int,uint,long,ulong,float,double,decimal |
sbyte | short,int,long,float,double,decimal |
short | int,long,float,double,decimal |
ushort | int,uint,long,ulong,float,double,decimal |
int | long,float,double,decimal |
uint | long,ulong,float,double,decimal |
long | float,double,decimal |
ulong | float,double,decimal |
显示转换就是将一种类型的数据强制转换为另一种数据类型,但是两种数据之间必须有一定的可行性。例如不可能将 string str=“hello”转化成一个数字类型的。所以显示转换要有一定的可行性,否则会转换失败。并且在显示转化过程中有可能存在数据的丢失。例如将double db=12.74转换为int类型后的值为 12。
显示转换的4种方法:
l (type)要转换的数据
例:int intA;
double dbA=10.0020434;
intA=(int)dbA;
Tips:此方法适用于用于数字数据类型(byte、short、int、char、double等)之间的转换,不能用于字符串、布尔类型之间的转换。
l 变量名.ToString(要转换的数据)
例:string str;
double dbA=45667.39900;
str=dbA.ToString();
Tips:此方法只适用于其他类型向string类型转换。
l type.Parse(要转换的数据)
例:int intA;
string str=”34”
intA=int.Parse(str);
Tips:此方法只适用于string类型向其他类型数据(数字类型、布尔类型)的转换。
l Convert.To(type)(要转换的数据)
例: int intA;
string str=“213545”;
intA=Convert.ToInt(str);
Tips:此方法适用于任意两种数据类型之间的转换,并且转换效率比较高。
每种转换的方法不同效率也不同,要注意的的是高精度向低精度转换时有可能会出现数据丢失的可能,所以转换前要考虑到。其次转换是要有可行性,比如不可能将依据话转化成一个数字,这样在执行的时候会转换失败。
相关文章推荐
- [导入]ASP.NET AJAX客户端编程之旅(三)——让JavaScript和C#无障碍沟通:数据类型自动转换&序列化
- c# implicit explicit关键字(隐式和显式数据类型转换)
- C#将数据转换为指定类型,支持对可空类型(Nullable类)转换方法示例
- C# 课堂总结2-数据类型及转换方式
- C#中数据类型转换-隐式转换
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- c#之用户定义的数据类型转换
- C#调用非托管C编写DLL的数据类型转换
- 黑马程序员--C#数据类型转换
- C# 数据类型间转换
- C#数据类型与类型转换
- c# 数据类型转换
- C#中的数据类型转换和图片拼接
- C#与C++数据类型比较及结构体转换(搜集整理二)
- c++ c# 数据类型转换
- C#中数据类型转换
- c#有用数据类型转换
- C#各种数据类型转换
- SQL数据类型和C#数据类型间的转换
- C# 数据类型转换