4.数据类型转换
4.1 隐式转换
隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围大的数据类型。
隐式数值转换包括以下几种:
- 从 sbyte 类型到 short,int,long,float,double,或 decimal 类型。
- 从 byte 类型到 short,ushort,int,uint,long,ulong,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 类型。
- 从 char 类型到 ushort,int,uint,long,ulong,float,double,或 decimal 类型。
- 从 float 类型到 double 类型。
4.2 强制类型转换
强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼容。
数据类型变量名 = (数据类型) 变量名或值;
4.3 Parse方法
Parse方法用于将字符串类型转换成任意类型。
数据类型 变量 = 数据类型.Parse(字符串类型的值);
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入三个数字");
int num1 = int.Parse(Console.ReadLine());
int num2 = int.Parse(Console.ReadLine());
int num3 = int.Parse(Console.ReadLine());
int maxvalue = num1;
if (num2 > maxvalue)
{
maxvalue = num2;
}
if (num3 > maxvalue)
{
maxvalue = num3;
}
Console.WriteLine("三个数中最大的值是:" + maxvalue);
}
}
4.4 Convert方法
Convert方法是数据类型转换中最灵活的方法,它能够将任意数据类型的值转换成任意数据类型,前提是不要超出指定数据类型的范围。
数据类型 变量名 = convert.To数据类型(变量名);
方法 | 说明 |
---|---|
Convert.ToInt16() | 转换为整型(short) |
Convert.ToInt32() | 转换为整型(int) |
Convert.ToInt64() | 转换为整型(long) |
Convert.ToChar() | 转换为字符型(char) |
Convert.ToString() | 转换为字符串型(string) |
Convert.ToDateTime() | 转换为日期型(datetime) |
Convert.ToDouble() | 转换为双精度浮点型(double) |
Conert.ToSingle() | 转换为单精度浮点型(float) |
using System;
class Program
{
static void Main(string[] args)
{
float num1 = 1103.56f;
int integer;
string str;
integer = Convert.ToInt32(num1);
str = Convert.ToString(num1);
Console.WriteLine("转换为整型数据的值{0}", integer);
Console.WriteLine("转换为字符串{0}",str);
}
}
// 转换为整型数据的值1104
// 转换为字符串1103.56
4.5 To方法
方法 | 描述 |
---|---|
ToBoolean | 如果可能的话,把类型转换为布尔型。 |
ToByte | 把类型转换为字节类型。 |
ToChar | 如果可能的话,把类型转换为单个 Unicode 字符类型。 |
ToDateTime | 把类型(整数或字符串类型)转换为 日期-时间 结构。 |
ToDecimal | 把浮点型或整数类型转换为十进制类型。 |
ToDouble | 把类型转换为双精度浮点型。 |
ToInt16 | 把类型转换为 16 位整数类型。 |
ToInt32 | 把类型转换为 32 位整数类型。 |
ToInt64 | 把类型转换为 64 位整数类型。 |
ToSbyte | 把类型转换为有符号字节类型。 |
ToSingle | 把类型转换为小浮点数类型。 |
ToString | 把类型转换为字符串类型。 |
ToType | 把类型转换为指定类型。 |
ToUInt16 | 把类型转换为 16 位无符号整数类型。 |
ToUInt32 | 把类型转换为 32 位无符号整数类型。 |
ToUInt64 | 把类型转换为 64 位无符号整数类型。 |
在C#语言中数据类型分为值类型和引用类型,将值类型转换为引用类型的操作称为装箱,相应地将引用类型转换成值类型称为拆箱。
// 装箱
int a=100;
string str=a.ToString();
// 拆箱
a=int.Parse(str);
int val = 100;
//这是一个装箱的过程,是将值类型转换为引用类型的过程
object obj = val;
Console.WriteLine("对象的值 = {0}", obj);
//这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程
int num = (int) obj;
Console.WriteLine("num = {0}", num);
// 对象的值 = 100
// num = 100