一、简单的数值类型转换
在JAVA中,我们知道存在两种转换形式,自动类型转换和强制类型转换,在C#中,我们可以把这两种类型转换称之为隐式类型
转换和显式类型转换。转换的方法和JAVA中一样。
1.隐式类型转换
对于数值类型,类型A的取值范围只要完全包含在类型B中,那么类型A就可以隐式转换为类型B
例如整型数值(int)A就可以隐式转换为浮点型(double).
2.显式类型转换
与隐式转换相反,只要把取值范围大的转换为取值范围小的,就需要用到显式类型转换。
double score = 85.5;
int add = 2;
int finalScore = (int)score + add;
以上这两种转换方式主要适用于数值类型之间的转换。
二、数值类型与字符串之间的转换
上一种方式主要适用于数值类型之间的转换。
那么数值类型与字符串类型之间怎么转换呢?
1.字符串转换为数值型
在C#基础课程中,我们知道了从控制台接受数值类型的方法如下:
int score = int.parse(Console.ReadLine());
当我们要把字符串转换为数值类型时,可以使用Parse()方法。不同的数值类型都有自己的Parse()方法。
字符串转换为整型
int.Parse(string);
字符串转换为单精度浮点型
float.Parse(string);
字符串转换为双精度浮点型
double.Parse(string);
注意:要转换的字符串必须是数字的有效表达式。
2.数值型转换为字符串
将数值类型转换为字符串需要使用到ToString()方法
int age = 20;
string myAge = age.ToString();
三、使用Convert类进行类型转换
上面的Parse()方法是用来将字符串类型转换类数值类型的,我们再来认识一个更厉害的--Convert类,它能够在基本类型之间相互转换。Convert类为每一种都提供了一个静态方法。
Convert.ToInt32(); //转换为整型
Convert.ToSingle(); //转换为单精度浮点型
Convert.ToDouble(); //转换为双精度浮点型
Convert.ToString(); //转换为字符串类型
Convert类为每种类型转换都提供了一个静态方法,所以可以直接通过类型.方法名调用。
举个例子:
- Class Demo
- {
- static void Main(string [] args)
- {
- double score = 85.6;
- int myInt;
- float myFloat;
- string myString;
- Console.WriteLine("原始类型为double:{0}",score);
- myInt = Convert.ToInt32(score);
- myFloat = Convert.ToSingle(score);
- myString = Convert.ToString(score);
- Console.WriteLine("转换后:");
- Console.WriteLine("int /t float /t string");
- Console.WriteLine("{0}/t{1}/t{2}",myInt,myFloat,myString);
- }
- }
运行结果:
int float string
86 85.6 85.6
值得注意的是在前面显式类型转换时,将double类型显式转换为int类型时,结果是85,而用Convert类进行转换时,结果却是86。结论是利用显式类型转换时,将忽略小数位,就相当于利用SQL中的函数floor()效果一样。而利用Convert类进行转换是,将采用四舍五入的方法。