C#零基础入门 基础语法 -- 类型转换
前言
本文属于C#零基础入门之百识百例系列文章。此系列文章旨在为学习C#语言的童鞋提供一套系统的学习路径。此系列文章都会通过【知识点】【练习题】的形式呈现。有任何问题,你都可以通过评论,私信等方式找到我,我会一对一解答你的问题。
系列文章目录:
《C#零基础入门之百识百例》 目录文章传送门
C#中类型转换主要包括隐式转换、显示转换以及字符串和数值之间的转换三种。下面我们一一学习:
一,隐式转换
在 C# 语言中隐式转换是指不需要其他方法数据类型直接即可转换。
隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围大的数据类型。
示例代码:
int i = 10;
//将int类型转换为double类型
double d = i;
float f = 3.14f;
//将float类型转换为double类型
d = f;
隐式转换图示:
结合我们前面在《基础数据类型》中学习到的每种类型的取值范围,我们可以发现,隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换。
二,显示转换
强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼容。
若不进行强制转换,则会编译报错:
强制类型转换的语法如下:
数据类型 变量名 = (数据类型) 变量名或值;
示例代码如下:
double PI = 3.1415926;
int i = (int) PI;
这样虽然能将值进行类型的转换,但损失了数据的精度(示例中i=3,舍去了小数点),造成了数据的不准确,因此在使用强制类型转换时还需要注意数据的准确性。
三,字符串和数值转换
3.1 Parse方法
借助Parse方法可以把string类型数据转换成int、float等多种数值类型。
其语法格式为:
目标类型.Parse(待转换字符串)
示例代码:
string str = "1";
int i = int.Parse(str);
此时已经将字符串"1"转换为了数字1。
3.2 Convert方法
C# Convert 方法是数据类型转换中最灵活的方法,它能够将任意数据类型的值转换成任意数据类型,前提是不要超出指定数据类型的范围。
语法形式如下。
数据类型 变量名 = Convert.To数据类型(变量名);
示例代码:
float f = 3.14f;
int i;
string str;
i = Convert.ToInt32(f);
str = Convert.ToString(f);
Convert类的转换方法整理如下:
方法 | 说明 |
---|---|
Convert.ToInt16() | 转换为整型(short) |
Convert.ToInt32() | 转换为整型(int) |
Convert.ToInt64() | 转换为整型(long) |
Convert.ToChar() | 转换为字符型(char) |
Convert.ToString() | 转换为字符串型(string) |
Convert.ToDateTime() | 转换为日期型(datetime) |
Convert.ToDouble() | 转换为双精度浮点型(double) |
Conert.ToSingle() | 转换为单精度浮点型(float) |
四,实例练习 – 转换用户输入
4.1 题目描述
用户按规定键盘输入一组数字(0-9999),将其转换为数字int类型的数字,看看你能写出几种写法?
4.2 问题分析
字符串转换数字
- 方案一:强制转换
- 方案二: Parse方法
- 方案三:Convert方法
4.3 参考代码
- 方案一:强制转换 --> 【编译报错】
class Program
{
static void Main(string[] args)
{
string intputNum = Console.ReadLine();
int x = (int)intputNum; // 强制转换
Console.ReadKey();
}
}
结果:编译报错
- 方案二: Parse方法 --> 【可行:第6行】
- 方案三:Convert方法 --> 【可行:第7行】
class Program
{
static void Main(string[] args)
{
string intputNum = Console.ReadLine();
int num1 = int.Parse(intputNum);
int num2 = Convert.ToInt32(intputNum);
Console.WriteLine("Parse:{0}, Convert:{1}", num1, num2);
Console.ReadKey();
}
}